2016-12-06 51 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插件,它解決了我的問題。