【发布时间】:2012-12-12 02:47:43
【问题描述】:
我有一个多模块 maven 项目,其中模块共享依赖项。通过共享,我的意思是使用相同的依赖项。然而,每个模块都自己声明依赖关系。为了保持理智(是的,maven,理智,我知道),并让所有模块使用相同版本的依赖项,父 pom 声明带有版本号的属性:
<properties>
<dependency1.version>1.0-SNAPSHOT</dependency1.version>
<dependency2.version>1.1-SNAPSHOT</dependency2.version>
</properties>
所有模块都使用这样的:
<dependency>
<groupId>group</groupId>
<artifactId>dependency1</artifactId>
<version>${dependency1.version}</version>
</dependency>
我对这个设置非常满意,因为它允许我在一处更改依赖项版本。
现在我有一堆我自己维护的依赖项。这些的发布是自动的并且非常简单,基本上:
mvn release:prepare release:perform -B
现在我想在我运行的主项目中进一步自动化:
mvn versions:update-properties
(如果需要,我基本上也会运行:“mvn versions:use-releases”来更改通常的依赖项,但这超出了这个问题的范围)。
运行此更新属性后,我的主要项目 pom 中的属性指向发布(这很好)。但是,如果我的模块使用属性来定义其他依赖项的版本并且这些项目有更新的版本可用,那么这些属性也会更改。
有没有办法限制更新属性造成的损害?版本:use-release 需要 includes 属性,所以我只能在我的人工制品上使用它。找不到更新属性的类似内容。
我可以恢复除父级之外的所有 pom 并仅提交/推送,但这似乎并不优雅。
【问题讨论】:
标签: java maven versions-maven-plugin