2

我使用 Mercurial (hg) 作为我的源代码控制工具,使用 Maven 作为构建系统。

在执行发布过程时(使用versions-maven-plugin:versions:set -Dxxx=yyy versions:use-releases xxxxx yyy 目标),我得到了有效的pom 文件来对项目执行有效的发布构建。

现在,当发布构建成功时,下一步是提交更改的文件(由版本插件更改),我正在使用 maven-scm-plugin(scm:checkin 和 scm:tag)。由于我的源代码控制工具是 Mercurial/hg,scm:xxx 操作将调用 hg 命令(而不是 svn 或任何其他工具 - 仅供参考)。

我有有效的设置,<scm>. for connection and developerConnection..<scm>所以 scm:checkin 按预期工作。

但是在启动 scm:tag 时出现以下错误。任何想法我做错了什么?

PS :
1.相同的操作(scm:checkin 和 scm:tag)在其他项目中也能成功。
2. 我没有使用maven-release-plugin

16:05:52 [INFO] --- maven-scm-plugin:1.9.2:tag (default-cli) @ project-parent ---
16:05:52 [INFO] Final Tag Name: '0.0.1'
16:05:52 [INFO] EXECUTING: /bin/sh -c cd /production/jenkins/tools/workspace/ProjectTestApp && hg tag --message 'CM Jenkins - Release plugin auto check-in and creation of release tag = 0.0.1' 0.0.1

18:33:30 [ERROR] 
18:33:30 EXECUTION FAILED
18:33:30   Execution of cmd : tag failed with exit code: 255.
18:33:30   Working directory was: 
18:33:30     /production/jenkins/tools/workspace/ProjectTestApp
18:33:30   Your Hg installation seems to be valid and complete.
18:33:30     Hg version: 1.9.2 (OK)

16:05:52 [INFO] ------------------------------------------------------------------------
16:05:52 [INFO] BUILD FAILURE
16:05:52 [INFO] ------------------------------------------------------------------------
16:05:52 [INFO] Total time: 7.082 s
16:05:52 [INFO] Finished at: 2014-09-25T16:05:52-05:00
16:05:53 [INFO] Final Memory: 14M/360M
16:05:53 [INFO] ------------------------------------------------------------------------
16:05:53 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-scm-plugin:1.9.2:tag (default-cli) on project project-parent: Cannot run tag command : Exception while executing SCM command. Error while executing command tag --message 'CM Jenkins - Release plugin auto check-in and creation of release tag = 0.0.1' 0.0.1 -> [Help 1]
16:05:53 [ERROR] 
16:05:53 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
16:05:53 [ERROR] Re-run Maven using the -X switch to enable full debug logging.
16:05:53 [ERROR] 
16:05:53 [ERROR] For more information about the errors and possible solutions, please read the following articles:
16:05:53 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
16:05:53 Archiving artifacts
16:05:54 Finished: FAILURE
4

1 回答 1

2

问题在于 hg/mercurial 中已经存在的标签(最近我正在玩 POC 工作并从命令行手动在 Hg 中应用 0.0.1 标签)。

也就是说,要么在项目的 pom.xml 文件中修改版本号以使用更新的 xxx-SNAPSHOT 并发布该 xxx(不是 0.0.1),要么 hg 克隆项目(或在 SVN 中签出)并运行以下命令(在我的例子中,标签是 0.0.1):

hg tag --remove 0.0.1
hg push

在上述命令之后,我确保标签在 Hg(项目父项目的 Web 浏览器)中消失了,并在 Jenkins 中尝试了发布升级过程(使用了版本-maven-plugin、maven-scm-plugin、enforcer 插件)...按预期工作。

于 2014-09-26T18:00:58.963 回答