设置新版本号并在Maven中一次构建

时间:2013-10-24 20:03:08

标签: java eclipse maven

我正在尝试设置版本号并在Maven中构建项目,但该工件似乎是旧版本,即使在此过程中成功设置了版本号。命令是:

versions:set -DnewVersion=1.0.1 clean compile package -Dmaven.test.skip=true -U

输出开始如下:

[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building MyLibraries 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- versions-maven-plugin:2.1:set (default-cli) @ SharedLibraries ---
[INFO] Searching for local aggregator root...
[INFO] Local aggregation root: C:\Documents and Settings\user\My Documents\workspaces\MyWorkspace\MyProjectRoot
[INFO] Processing com.mycompanies:MyLibraries
[INFO]     Updating project com.myCompany:MyLibraries
[INFO]         from version 1.0.0 to 1.0.1
Props: {project.artifactId=MyLibraries, project.version=1.0.1, project.groupId=com.myCompany}
Props: {project.artifactId=MyLibraries, project.version=1.0.1, project.groupId=com.myCompany}
Props: {project.artifactId=MyLibraries, project.version=1.0.1, project.groupId=com.myCompany}
Props: {project.artifactId=MyLibraries, project.version=1.0.1, project.groupId=com.myCompany}
[INFO] 
[INFO] Processing com.myCompany:Assembly
[INFO]     Updating parent com.myCompany:MyLibraries
[INFO]         from version 1.0.0 to 1.0.1

但后来:

[INFO] ------------------------------------------------------------------------
[INFO] Building MyLibraries 1.0.0
[INFO] ------------------------------------------------------------------------

最终jar的版本号是1.0.0。

是否可以在一个命令中更新版本并构建项目,或者我是否需要两个命令:一个用于更新版本而另一个用于构建?

我在RAD(基于Eclipse平台)中这样做,所以如果可能的话,我宁愿避免为两次运行配置点击两次。

1 个答案:

答案 0 :(得分:3)

在这种情况下,您遇到的问题是,如果您调用mvn versions:set ... clean package,则pom文件已被加载到内存(reactor)中,稍后将在程序包生命周期中使用,但调用目标是versions-maven-plugin你正在改变硬盘上的pom文件。换句话说,你需要有不同的要求才能成功。

mvn versions:set -DnewVersion=1.0.1
mvn clean package