【发布时间】:2013-03-28 16:05:50
【问题描述】:
我正在尝试使用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 不可执行
【问题讨论】:
-
除非你运行 Wrapper 类型的 gradle 任务,否则我认为不会更改 gradlew。
-
我有点同意。但我不知道是什么导致包装器运行。它当然不在我明确调用的任务中,它们也没有包装器作为依赖项(至少那将是一个非常奇怪的依赖项)
-
我使用 jenkins gradle 插件为此创建了一个错误:issues.jenkins-ci.org/browse/JENKINS-17505
标签: jenkins gradle gradlew gradle-release-plugin