2016-12-06 49 views
3

我们使用jgit作为git项目来签出并完成jenkins流程。它通过快照构建但下面的错误失败的发布版本:Jenkins发布jgit问题

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

我曾参观过几个进出计算器的页面,但并没有得到适当的反应。将欣赏任何进一步的建议。

+0

我认为GitManager类没有提供jgit命令执行的实际输出,也没有很难说实际的失败。你可以在jenkins工作区中手动运行jgit命令吗? – centic

+1

如果您要降级,请注明您的意见! – dildeepak

+0

你在这方面取得进展的最佳选择是回答我之前评论中的问题,这个问题显然没有足够的信息,但任何人都没有建议解决方案... – centic

回答

1

从您的控制台输出中可以明显看出,您的Jgit无法从工作区中存在的克隆库中获取最新提交的SHA。 最新的提交散列需要解析pom文件的发布版本。

一个原因(不太可能,但仍然如果你使用漂亮的旧Jgit)可能是你在Jenkins中配置的Jgit版本不支持检索当前提交的SHA的命令((因为Jgit仍在开发中阶段,而不是完全替代git-cli,这就是为什么jenkins git-client插件默认使用git-cli,而不是Jgit,尽管后者带有它自己的一系列优点......更多信息请参阅Jgit官方文档))

第二个原因(最可能的)可能是你没有使用正确的git插件版本,git-client插件版本和Jenkins版本的组合。所有主要的DevOps工具都与插件相关的问题同样出名,因为它们是为了他们所服务的目的。相信我......有时候,DevOps工程师解决插件问题变成了一场噩梦。

无论如何,如果您能够提供您使用的插件和工具的版本(因为它们形成了可能在解决问题时得心应手的重要信息的一部分)。此外,您的问题可能会被降低由SO社区成员,如果您的问题缺乏这种重要细节的可用性)

供您参考: - 我一直在我的詹金斯1.596.2使用Jgit,与git-client插件1.18.0,git插件2.4.0 。并且它在快照以及发布版本中都像丝绸一样顺畅地工作.. 希望这会有所帮助..:)

+0

感谢您的长篇故事,虽然我没有找到太多相关的步骤或命令形式:) 顺便说一句,根据要求,我编辑了我的问题与插件信息。 – dildeepak

+0

另外,如果答案不能提供简单,简短和明确的答案,那么答案也可以被低估。 – dildeepak

1

后头部划伤了这么多天,甚至把赏金后,我没有得到Jgit适当的帮助。

我从Jgit更改为GIT插件,它解决了我的问题。