4

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

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

输出开始是这样的:

[信息]                                                                         
[信息] --------------------------------------------- -------------------------
[信息] 构建我的图书馆 1.0.0
[信息] --------------------------------------------- -------------------------
[信息]
[信息] --- 版本-maven-plugin:2.1:set (default-cli) @ SharedLibraries ---
[INFO] 正在搜索本地聚合器根...
[INFO] 本地聚合根目录:C:\Documents and Settings\user\My Documents\workspaces\MyWorkspace\MyProjectRoot
[INFO] 处理 com.mycompanies:MyLibraries
[INFO] 更新项目 com.myCompany:MyLibraries
[信息] 从版本 1.0.0 到 1.0.1
道具:{project.artifactId=MyLibraries, project.version=1.0.1, project.groupId=com.myCompany}
道具:{project.artifactId=MyLibraries, project.version=1.0.1, project.groupId=com.myCompany}
道具:{project.artifactId=MyLibraries, project.version=1.0.1, project.groupId=com.myCompany}
道具:{project.artifactId=MyLibraries, project.version=1.0.1, project.groupId=com.myCompany}
[信息]
[INFO] 处理 com.myCompany:Assembly
[INFO] 更新父 com.myCompany:MyLibraries
[信息] 从版本 1.0.0 到 1.0.1

但后来:

[信息] --------------------------------------------- -------------------------
[信息] 构建我的图书馆 1.0.0
[信息] --------------------------------------------- -------------------------

最终jar的版本号是1.0.0。

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

我在 RAD(基于 Eclipse 平台)中执行此操作,因此如果可能的话,我宁愿避免单击两次以获得两个运行配置。

4

1 回答 1

4

在这种情况下,您面临的问题是,如果您调用mvn versions:set ... clean packagepom 文件已加载到内存(反应器)中,并且稍后将由包生命周期使用,但调用 versions-maven-plugin 的目标,您正在更改硬盘上的 pom 文件。所以换句话说,你需要有不同的呼吁才能成功。

mvn versions:set -DnewVersion=1.0.1
mvn clean package
于 2013-10-24T20:14:49.683 回答