我们使用 Mercurial、Maven 和 Hudson
我创建了一个测试项目以在 Hudson 中使用并设置 freestyle/Maven 3 作业,以执行“发布:准备发布:执行”目标。这运行良好。
然后,我通过复制测试项目并更新“存储库 URL”和“存储库浏览器 URL”,为“真实”项目创建了另一个发布作业。这个失败了:
[INFO] Checking in modified POMs...
[INFO] EXECUTING: /bin/sh -c cd /opt/home/hudson/jobs/MyProject-ManualRelease/workspace && hg branch
[INFO] EXECUTING: /bin/sh -c cd /opt/home/hudson/jobs/MyProject-ManualRelease/workspace && hg outgoing
[INFO] EXECUTING: /bin/sh -c cd /opt/home/hudson/jobs/MyProject-ManualRelease/workspace && hg commit --message '[maven-release-plugin] prepare release MyProject-1.0' /opt/home/hudson/jobs/MyProject-ManualRelease/workspace/pom.xml
[INFO] EXECUTING: /bin/sh -c cd /opt/home/hudson/jobs/MyProject-ManualRelease/workspace && hg push https://hudson:hudson@scmserver/hg/current/MyProject
[ERROR]
EXECUTION FAILED
Execution of cmd : push failed with exit code: 255.
Working directory was:
/opt/home/hudson/jobs/MyProject-ManualRelease/workspace
Your Hg installation seems to be valid and complete.
Hg version: 1.3.1 (OK)
为了让我们的 Maven 发布插件与我们的 Mercurial 服务器一起工作,我们必须在其上设置 https 并且需要在每个项目的 hgrc 文件中添加一些配置。两个项目存储库都设置了相同的配置。
我们以“hudson”用户的身份运行 Hudson,并在 Mercurial 服务器上为其设置了私钥/公钥,以便它可以访问 Mercurial 服务器。
我不明白为什么一个项目可以提交更改而另一个不能。如果是两个项目,我猜这是权限问题,但它只是其中之一。
我希望有人对问题所在提出建议。