尝试找到更新pom的方法,以使用RELEASED依赖项的最新版本而不是SNAPSHOT。
我们有一个程序集项目,它在开发过程中使用SNAPSHOT依赖项组装要部署的映像。
但是现在我想更新依赖项以使用最新发布的依赖项。尝试使用版本:use-latest-releases但它只影响pom中已发布的版本。
有什么想法吗?
编辑(出于安全原因不能发布pom,但这里是一个例子)
<project>
....
<dependencies>
<dependency>
<groupId>a.b.c</groupId>
<artifactId>c-d-f</artifactId>
<version>1.0.1-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>a.b.c</groupId>
<artifactId>g-h-i</artifactId>
<version>1.1.6-SNAPSHOT</version>
<type>war</type>
</dependency>
...
</dependencies>
...
</project>
鉴于组件a-b-c和g-h-i已经与版本1.0.1和1.1.6一起发布,我想用这些版本号替换它们在这个pom中的版本。基本上删除pom中的所有快照依赖项。
EDIT 我应该补充说,这是一个自动化过程,人与人之间的互动很少。出于某种原因,我只能获得版本:如果版本已经处于发布状态,则update-properties可以正常工作。如果我有一个快照版本0.0.1-SNAPSHOT并想要将其更新为0.0.1,它不会发生,我已经验证了该版本的存在。版本相同:use-latest-relese和版本:use-releases什么都不做。
答案 0 :(得分:0)
我在这里看到两种方法:
希望有所帮助!
答案 1 :(得分:0)
您可以在pom.xml中使用maven属性,例如:
<properties>
<c-d-f.version>1.0.1-SNAPSHOT</c-d-f.version>
<g-h-i.version>1.1.6-SNAPSHOT</g-h-i.version>
</properties>
<dependencies>
<dependency>
<groupId>a.b.c</groupId>
<artifactId>c-d-f</artifactId>
<version>${c-d-f.version}</version>
<type>war</type>
</dependency>
<dependency>
<groupId>a.b.c</groupId>
<artifactId>g-h-i</artifactId>
<version>${g-h-i.version}</version>
<type>war</type>
</dependency>
...
</dependencies>
当您想要更改版本时,可以使用maven-versions-plugin,使用以下命令,例如:
版本:update-properties -Dproperties = [$ {release_version}] -DincludeProperties = {c-d-f.version}
编辑:
请注意,如果您想使用SNAPSHOTS,则需要添加-DallowSnapshots。 Read here了解更多选项。是的,版本需要存在于repo中,否则它将失败。 BTW你是否使用括号,例如-Dproperties = [0.0.1]?在您阅读我发送给您的链接后,您会看到此命令的输入是范围,因此您必须使用括号来指定唯一版本。