gpt4 book ai didi

java - 如何在java中使用多个版本的依赖关系进行构建

转载 作者:行者123 更新时间:2023-12-01 12:06:59 52 4
gpt4 key购买 nike

我想让我的项目支持一个依赖项的多个版本。这种依赖关系可能与 API 不兼容,那么最简单和最佳的做法是什么?有没有办法在运行时检测版本,并​​控制是否编译使用依赖项新功能的代码段。

最佳答案

我假设您的意思是最终用户可以在其类路径中添加 JAR 的多个版本中的任何一个,并且您希望能够使用他们提供的任何版本。

有多种方法可以做到这一点。您可以通过查看 list 目录来检测版本是否是使用 Maven 或类似版本构建的。另一种方法是编写多个适配器,针对您所知道的每个版本系列编写一个适配器,并测试哪个版本似乎可以工作。

您可以在 Maven 中构建它,方法是为每个版本创建一个模块,并可选地依赖于该模块支持的版本。您创建一个具有唯一名称的类,例如名称中包含您支持的版本。这将为您提供 N 个具有少量类的模块。然后,您可以创建一个包含所有这些类的模块,并在它们之间进行搜索以找到第一个似乎有效的模块。显然,如果您知道自己支持哪些版本,这比反复试验要好,但并不总是可行。

<小时/>

如果您想一次支持多个版本,而不使用自定义类加载器,您可以使用像 jarjar 这样的工具来重命名多个支持版本的包,并将其提供在所有支持版本的 uber JAR 中。

关于java - 如何在java中使用多个版本的依赖关系进行构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27523075/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com