繁体   English   中英

Jenkins`Make gradlew executable`选项不会使`gradelw可执行

[英]Jenkins `Make gradlew executable` option do not make `gradelw executable

我在Linux机器(CentOS)上安装了Jenkins,我尝试在主机上构建基于Gradle的项目。 我的项目使用基于Stash Git的存储库作为SCM。

在Jenkins构建作业中,我Clean before checkout启用了Clean before checkout选项。 我看到gradlew脚本在没有可执行权限的情况下进行了检查。 因此,我为该任务设置了Make gradlew executable复选框。 但我仍然看到问题:

java.io.IOException: Cannot run program "/project/dir/gradlew" (in directory "/project/dir/"): error=13, Permission denied

我检查了gradlew权限,并且该文件没有可执行文件。

有谁知道如何调试/设置它?

现在,我必须使用addetional构建步骤execute shell script来为gradlew设置可执行权限。

注意1 :我使用Use Gradle Wrapper构建选项而不是Invoke Gradle因为我在Internet上找到了一些建议。

注意2 :我发现make gradlew脚本可执行问题并检查我的Jenkins构建应该包含此修复。 我使用Jenkins build 1.581

让我们假设文件script.sh需要设置可执行位。 使用command git ls-tree检查文件权限:

C:\views\myproject>git ls-tree HEAD
100644 blob 55c0287d4ef21f15b97eb1f107451b88b479bffe    script.sh

如您所见,该文件具有644权限(忽略100)。 我们想将其更改为755:

C:\views\myproject>git update-index --chmod=+x script.sh
C:\views\myproject>git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   script.sh
#

该文件现已上演。 请注意,文件内容不会更改,只会更改元数据。 我们必须提交文件以保存更改:

C:\views\myproject>git commit -m "Changing file permissions"
[master 77b171e] Changing file permissions
 0 files changed, 0 insertions(+), 0 deletions(-)
 mode change 100644 => 100755 script.sh

再次运行git ls-tree以查看更改:

C:\views\myproject>git ls-tree HEAD
100755 blob 55c0287d4ef21f15b97eb1f107451b88b479bffe    script.sh

资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM