我们正在使用jgit进行git项目检查并完成jenkins流程。它传递快照构建但对于发布版本失败,出现以下错误:
Building on master in workspace /home/jenkins2/jenkins/jobs/Git-end_to_end_4.0/workspace
Fetching changes from the remote Git repository
Checking out Revision 302b3bc2190db18b4661407ec67918e4f8ca65fc (refs/remotes/lighthouse/master)
Property '-Dm3plugin.lib' is already part of MAVEN_OPTS. This is usually a leftover of previous build which was forcibly stopped. Replacing the value with an updated one. Please remove it from the job configuration.
[RELEASE] Release build triggered
> jgit rev-parse --verify HEAD # timeout=10
ERROR: Failed to parse POMs
java.io.IOException: Failed retrieving current commit hash: Error performing command: jgit rev-parse --verify HEAD
at org.jfrog.hudson.release.scm.git.GitManager$CurrentCommitCallable.invoke(GitManager.java:194)
at org.jfrog.hudson.release.scm.git.GitManager$CurrentCommitCallable.invoke(GitManager.java:168)
at hudson.FilePath.act(FilePath.java:914)
at hudson.FilePath.act(FilePath.java:887)
at org.jfrog.hudson.release.scm.git.GitManager.getCurrentCommitHash(GitManager.java:52)
at org.jfrog.hudson.release.scm.git.GitCoordinator.prepare(GitCoordinator.java:74)
at org.jfrog.hudson.release.maven.MavenReleaseWrapper.setUp(MavenReleaseWrapper.java:131)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:643)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:585)
at hudson.model.Run.execute(Run.java:1676)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:519)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:231)
供参考,以下是我的版本详情:
詹金斯版:詹金斯版。 1.554
Git客户端插件:1.17.1
Git插件:2.4.0
我已经访问了stackoverflow中的几个页面,但没有得到正确的响应。将会感激任何进一步的建议。
答案 0 :(得分:1)
经过这么多天的划伤,甚至在投入赏金之后,我没有得到Jgit的正确帮助。
我从Jgit更改为GIT插件,它解决了我的问题。
答案 1 :(得分:1)
从您的控制台输出中可以清楚地看出,您的Jgit无法从您工作区中存在的克隆存储库中获取最新提交的SHA。 需要最新的提交Hash来解析pom文件以进行发布构建。
一个原因(不太可能,但仍然使用相当旧的Jgit)可能是您在Jenkins中配置的Jgit版本不支持检索当前提交的SHA的命令((因为Jgit仍处于开发阶段)还没有完全替代git-cli,这就是为什么jenkins git-client插件默认使用git-cli而不是Jgit,尽管后者带有它自己的一套优势...有关更多信息,请参阅Jgit官方文档) )
第二个原因(最有可能)可能是你没有使用git插件版本,git-client插件版本和Jenkins版本的正确组合。所有主要的DevOps工具都因插件相关问题而闻名,因为它们是为了服务的目的。相信我......有时,DevOps工程师解决插件问题变成了一场噩梦。
无论如何,如果你能提供你正在使用的插件和工具的版本会很好(因为它们形成了关键信息的一部分,可能会解决d问题。此外你的问题可能会被推翻SO社区成员,如果您的问题缺乏可用的重要细节)
供您参考: - 我一直在我的Jenkins 1.596.2中使用Jgit,使用git-client插件1.18.0,git插件2.4.0。对于快照和发布版本,它都像丝绸一样光滑。 希望这有助于.. :))