2013-04-06 49 views
2

我試圖使用gradle release-plugin詹金斯爲什麼改變我的gra and,以及如何防止?

插件開始通過檢查,如果我的工作副本是乾淨的,所以只有正確版本的東西得到釋放「釋放」我的項目。

這工作得很好,在我的本地機器上。但是當我在詹金斯的工作中嘗試同樣的事情時,這個構建無法抱怨工作場所中的各種東西發生了變化。我決定了很多東西只是內部使用詹金斯並把它添加到gitignore

caches/ 
native/ 
wrapper/ 

但它也認爲gradlew的改變:

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':checkCommitNeeded'. 
> You have uncommitted files: 
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    M gradlew 
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

爲什麼那個文件怎麼辦詹金斯變化我阻止?

我覺得對詹金斯的工作進行以下設置可能是相關的:

  • Checkout/merge to local branch (optional)設置爲主控。如果沒有這個設置,發佈插件抱怨不是一個分支,目前檢查

  • Clean after checkout,但選中/取消選中它並沒有區別

  • Make gradlew executable檢查,並至少對我來說聽起來像一個可能的原因,但取消選中它使構建faile因爲gradlew是不可執行的

+0

我不認爲gradlew將被改變,除非你運行類型Wrapper的gradle任務。 – 2013-04-07 06:16:15

+0

我有點同意。但我不知道是什麼導致包裝運行。它肯定不是我明確調用的任務,也不是包裝作爲依賴(至少這會是一個強大的奇怪依賴) – 2013-04-07 07:01:15

+0

我用jenkins gradle插件創建了一個bug:https:// issues .jenkins-ci.org /瀏覽/ JENKINS-17505 – 2013-04-07 07:14:52

回答

4

漂亮的老問題,但備案任何人過來這裏,詹金斯沒有過錯這裏,你應該提交gradlew與可執行位集:

# git update-index --chmod=+x gradlew 
# git commit 

然後,您將不再需要jenkins設置將其設置爲可執行文件,這是導致問題的解決方法。