git - 无法使用 Hudson + Git + Maven Release Plugin 获得自动发布

标签 git maven-2 hudson

正如标题所说,我正在尝试在 Hudson 上进行自动发布工作。这是一个 Maven 项目,所有代码都在 Git 中。手动地,我像这样在我的个人机器上发布:

git checkout master
mvn -B release:prepare release:perform

这非常有效。 Maven 发布插件正确地将发布标签推送到原始存储库以及将版本推送到下一个 SNAPSHOT 的下一次提交。

但是,当我通过 Hudson 运行同一个 Maven 作业时(通过创建我自己的“发布”作业或使用 M2 Release Plugin ),它的效果并不好。发布标签被推送到原始存储库,发布被推送到我们的 Nexus 存储库,但是将版本更新到下一个 SNAPSHOT 的后续提交不会退出。此外,原始存储库中的“master”分支根本没有改变。不过,我已经在 Hudson 的工作区中查找了这份工作,并且版本已经更新。

查看 Hudson 作业的输出后,Git 插件似乎实际上并没有 check out “master”,而是 check out SHA1 id。也就是说,如果“master”分支标签指向提交“f6af76f541f1a1719e9835cdb46a183095af6861”,Hudson 会执行

git checkout -f f6af76f541f1a1719e9835cdb46a183095af6861

代替

git checkout -f master

因此,Maven 发布插件所做的更改实际上不在任何分支上(当然不在“master”上),并且这些更改不会进入原始存储库。它运行在正确的代码上,但在簿记方面,更改似乎丢失了,因为没有分支标签指向它们。

有没有人让 Hudson + Git + Maven Release Plugin 组合正常工作?我可以在某处设置一些额外的配置来实现这一点吗?或者这是 Hudson Git 插件中的错误?

提前致谢。

最佳答案

编辑以消除过时的信息。

参见 this answer对于当前(非 hacky)解决方案。

关于git - 无法使用 Hudson + Git + Maven Release Plugin 获得自动发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1877027/

相关文章:

java - Maven mvn --dos 上的版本显示一些特殊的东西

maven-2 - 如果发生单元测试失败,Maven 报告插件不会执行

Jenkins Slave 环境变量刷新

git - 从 Master 分支但包括来自另一个未 merge 分支的更改

java - Gradle:如何编译使用 com.sun.xml.internal.bind.* 的类?

git - 无法通过慢速互联网连接推送到 git : ssh could not resolve hostname

maven-2 - Maven - 添加自定义阶段以使用其他配置执行插件

svn - 即使没有新的提交,Jenkins Poll SVN 也会不断构建

git - 什么是推送存储库 URL?

Git命令—— "-"和 "--"的意义