2014-11-25 1 views
4

나는 젠킨스를 리눅스 머신 (CentOS)에 설치했고, 마스터 호스트에 Gradle 기반 프로젝트를 만들려고했습니다. 내 프로젝트는 Stash Git 기반 저장소를 SCM으로 사용합니다.Jenkins`Make gradlew executable` 옵션이`gradelw executable '을 만들지 않습니다.

Jenkins 빌드 작업에서 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을 사용해야합니다.

참고 1 : Invoke Gradle 대신에 Use Gradle Wrapper 빌드 옵션을 사용합니다. 이는 인터넷에서 발견 된 몇 가지 제안 때문입니다.

참고 2 : make gradlew script executable 문제점을 발견했으며 내 Jenkins 빌드에이 수정 사항이 포함되어 있는지 확인했습니다. 젠킨스 빌드를 사용합니다. 1.581

답변

12

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 ls-tree HEAD 
100755 blob 55c0287d4ef21f15b97eb1f107451b88b479bffe script.sh 

Source

: 다시 변화를 볼 수

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 실행 : 우리는 지금 변경 사항을 저장 파일을 커밋해야합니다

관련 문제