Java Maven build未使用模型的更新版本(pom.xml)
我有一个maven项目,我确实从用户那里获得了新的项目版本:Java Maven build未使用模型的更新版本(pom.xml),java,maven,pom.xml,maven-plugin,versioning,Java,Maven,Pom.xml,Maven Plugin,Versioning,我有一个maven项目,我确实从用户那里获得了新的项目版本: Current Version = 1.0.0 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>2.7</version> <executions>
Current Version = 1.0.0
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>set</goal>
</goals>
</execution>
</executions>
</plugin>
Current Version = 2.0.0
当前版本=1.0.0
org.codehaus.mojo
版本maven插件
2.7
验证
设置
当前版本=2.0.0
在那之后,我调用了我自己的自定义插件,它运行一组计算并在版本中附加一个字符串
Current Version = 2.0.0
<groupId>mygroup</groupId>
<artifactId>my artifact</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>validate</goal>
</goals>
</execution>
</executions>
Current Version = 2.0.0-AddedString
当前版本=2.0.0
mygroup
我的神器
1.0.0
过程源
验证
当前版本=2.0.0-加法器
但当我运行其他插件时,例如:
<groupId>com.github.ekryd.echo-maven-plugin</groupId>
<artifactId>echo-maven-plugin</artifactId>
<executions>
<execution>
<id>end</id>
<goals>
<goal>echo</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<message>${project.version}</message>
</configuration>
</execution>
</executions>
com.github.ekryd.echo-maven-plugin
echo maven插件
结束
回声
过程资源
${project.version}
这给了我“1.0.0”的结果,应该是“2.0.0-加法”
但是为什么呢?
如何解决这个问题?我需要所有插件都使用新版本并使用它。您需要单独运行Maven 如果运行类似于
mvn versions:set-DnewVersion=2.0.0 my:plugin
的程序,则my:plugin
将看到启动命令之前的版本,而不是在两者之间设置的2.0.0
因此,当您有更改POM的目标时,您需要在单独的Maven运行中调用它们,即首先
mvn versions:set-DnewVersion=2.0.0
,然后mvn my:plugin
谢谢JF,还有什么可以运行“maven运行”序列的吗?例如,将我所有的maven运行放在一个文件或一个我可以运行多个“maven运行”的解决方案中。通常,你会使用像Jenkins这样的构建服务器。我正是有这个问题,我没有任何构建服务器,这使得任务有点复杂,你认为在一个shell脚本中有多个运行并通过exec插件运行它是明智的吗?(我猜不是因为exec插件也在当前运行)1,如果你做这个项目是专业的,而不是作为一个私人项目,首先建立一个构建服务器是非常有用的。2。如果你真的需要你定制的插件中的自定义逻辑,你应该仔细想想。你试图做一些违背Maven哲学的事情。很抱歉,在我写了我的评论后看到了你的最后一条评论。Gitlab应该能够构建Maven构建所需的管道,但我从未使用过它。