在Maven中,依赖关系通常是这样设置的:
<dependency>
<groupId>wonderful-inc</groupId>
<artifactId>dream-library</artifactId>
<version>1.2.3</version>
</dependency>
现在,如果你正在使用发布频繁的库,则不断更新<version>
标记可能会有些烦人。有什么方法可以告诉Maven
始终使用最新的可用版本(来自存储库)?
有关更多详细信息,请参见Maven书籍的POM语法部分。或者在Dependency Version Ranges上查看此文档,其中:
这是说明各种选项的示例。在Maven存储库中,com.foo:my-foo具有以下元数据:
<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>com.foo</groupId>
<artifactId>my-foo</artifactId>
<version>2.0.0</version>
<versioning>
<release>1.1.1</release>
<versions>
<version>1.0</version>
<version>1.0.1</version>
<version>1.1</version>
<version>1.1.1</version>
<version>2.0.0</version>
</versions>
<lastUpdated>20090722140000</lastUpdated>
</versioning>
</metadata>
如果需要依赖于该工件,则可以使用以下选项(当然可以指定其他版本范围,仅在此处显示相关的范围):
声明一个确切的版本(将始终解析为1.0.1):
<version>[1.0.1]</version>
声明一个明确的版本(除非发生冲突,否则当Maven选择一个匹配的版本时,它将始终解析为1.0.1):
<version>1.0.1</version>
声明所有1.x的版本范围(当前将解析为1.1.1):
<version>[1.0.0,2.0.0)</version>
声明一个开放式版本范围(将解析为2.0.0):
<version>[1.0.0,)</version>
将版本声明为最新(将解析为2.0.0)(从Maven 3.x中删除)
<version>LATEST</version>
将版本声明为RELEASE(将解析为1.1.1)(从Maven 3.x中删除):
<version>RELEASE</version>
请注意,默认情况下,你自己的部署将更新Maven元数据中的“最新”条目,但是要更新“发布”条目,你需要从Maven超级POM激活“发布配置文件” 。你可以使用“ -Prelease-profile”或“ -DperformRelease = true”来执行此操作
MVNRepository通常为每个依赖项列出“版本”和“更新”。 如果我发布自己的包,如何指定“更新”版本 Maven在解决传递依赖时使用了哪个依赖项?所以如果我的包依赖于包A,它依赖于包B,版本=1.0,更新=1.1。我会得到哪个版本的B?
我试图为我们的项目定义一个发布过程。 我能够使用maven发布插件来完成发布,但我必须手动更新所有内部快照依赖项,以在准备之前发布版本,然后在发布之后再次返回快照版本。 我使用了maven版本插件,它检测我的公司依赖项,即快照构建,并列出要使用的正确版本构建。 我尝试了maven发布插件,准备目标,并抱怨我的依赖项中的SNAPSHOT版本。 是否有一种方法可以将快照依赖项更新到最新发布的版本,然后
问题内容: 我不知道该如何工作。 场景: 我有一个用gradle构建的应用程序 该应用程序使用JavaFX 我想要的是 使用一个变量(针对每个开发人员的机器定义),该变量指向JDK的安装,该安装将用于构建整个应用程序/测试/ … 我考虑过要文件,定义变量。就像是 我不想要的 指向JAVA_HOME所需的JDK 我可以接受很多建议: 定义系统环境变量的解决方案,我可以在脚本中检查 中定义的变量 仅针
问题内容: 我正在与Maven项目一起工作,并且有两个项目,并且。我是一个maven库,其pom如下所示: 在我上面的POM,带来的是各种Spring框架依赖喜欢的旧版本,。它带来了版本,我想使用这两个spring框架的最新版本,即。排除旧版本和来自最新版本并使用最新版本的正确方法是什么? 我需要使用最新版本,因为某些类仅在最新版本中存在。 问题答案: 依赖项要求的库版本与要使用的库版本之间可能存
问题内容: 我使用Maven开发和构建了Java应用程序。我需要支持Java 1.6,因此我使用以下属性: 尽管如此,当我运行该应用程序时,仍然出现“不受支持的major.minor版本”错误,并且我怀疑我的一个依赖罐是使用比我需要支持的Java版本更新的Java版本进行编译的。 我的问题: 这有可能吗?我以为Maven会解决这种依赖版本问题。 有没有一种简单的方法来找出我所有依赖项的次要/主要版
问题内容: iText的最新版本是什么?那么,对Maven的依赖是什么? 问题答案: 您需要注意iText的Java版本的许可证: iText :iText Group NV在&许可下使用groupId; 的最新 正式 版本。 iText :ymasory / InProTopia 的最新 非官方 版本,在&许可下具有groupId; iText 及更高版本:由iText Group NV根据许可