我正在尝试使用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不可执行
答案 0 :(得分:6)
相当古老的问题,但是对于来到这里的任何人的记录,jenkins在这里没有错,你应该使用可执行位集来设置gradlew:
# git update-index --chmod=+x gradlew
# git commit
然后您将不再需要jenkins设置来将其设置为可执行文件,这是导致您出现问题的解决方法。