为什么Jenkins改变了我的gradlew,以及如何防止这种情况发生?

时间:2013-04-06 05:48:55

标签: jenkins gradle gradlew gradle-release-plugin

我正在尝试使用gradle release-plugin

'释放'我的项目

插件首先检查我的工作副本是否干净,以便只发布正确版本的内容。

这在我的本地机器上运行正常。但是,当我在Jenkins工作中尝试相同的事情时,构建失败抱怨工作场所中的各种内容发生了变化。我决定jenkins内部使用很多东西并将其添加到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
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

为什么Jenkins会更改该文件,如何防止这种情况?

我认为Jenkins工作的以下设置可能是相关的:

  • Checkout/merge to local branch (optional)设置为master。如果没有此设置,发布插件会抱怨不在分支上

  • 目前正在检查
  • Clean after checkout,但检查/取消选中它并没有什么区别

  • Make gradlew executable已经过检查,至少对我来说听起来像是一个可能的原因,但取消选中会导致构建失败,因为gradlew不可执行

1 个答案:

答案 0 :(得分:6)

相当古老的问题,但是对于来到这里的任何人的记录,jenkins在这里没有错,你应该使用可执行位集来设置gradlew:

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

然后您将不再需要jenkins设置来将其设置为可执行文件,这是导致您出现问题的解决方法。