如何使“./gradlew”与“sudo ./gradlew”相同?

时间:2016-04-21 08:03:50

标签: linux shell jenkins gradle

我在salve机器上设置Jenkins工作,我是Linux shell的新手。现在我有一个问题:

以jenkins(为Jenkins作业设置的用户帐户)登录,执行 ./ gradlew ,而不是开始下载https://downloads.gradle.org/distributions/gradle-2.10-bin.zip,并且由于错误而失败网络,如果它执行“ sudo ./gradlew”,它将开始正常运行gradle。

有人可以帮助并告诉我,如何使“./gradlew”与“sudo ./gradlew”相同,作为用户jenkins?

shell脚本来自git,所以我不能通过添加“sudo”来修改它。

在我的实际工作场景中添加日志:

jenkins@reed:/local/jenkins/workspace/SV_TEST_/automation/robot$ id
uid=180(jenkins) gid=0(root) group=0(root)

jenkins@reed:/local/jenkins/workspace/SV_TEST_/automation/robot$ sudo ./gradlew webAPI:compileJava
Starting a new Gradle Daemon for this build (subsequent builds will be faster).
:common:compileJava
warning: [options] bootstrap class path not set in conjunction with -source 1.7
:common:processResources UP-TO-DATE
:common:classes
:common:jar
:webAPI:compileJava
warning: [options] bootstrap class path not set in conjunction with -source 1.7

BUILD SUCCESSFUL

Total time: 10.204 secs
jenkins@reed:/local/jenkins/workspace/SV_TEST_/automation/robot$ /local/jenkins/workspace/SV_TEST/automation/robot/gradlew -g /local/jenkins/.gradle -p /local/jenkins/workspace/SV_TEST/automation/robot clean 
Downloading https://services.gradle.org/distributions/gradle-2.10-bin.zip
...

2 个答案:

答案 0 :(得分:0)

尝试使用以下内容替换gradlew中的最后一行:

exec sudo "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH"  org.gradle.wrapper.GradleWrapperMain "$@"

答案 1 :(得分:0)

谢谢所有人的回答,我找到了解决问题的方法: - )

我切换到root来检查〜/ .gradle,发现文件非常完整,而jenkins的〜/ .gradle只有一个包装器文件夹,所以我将〜/ .gradle中的所有文件全部复制到了一个for jenkins,并没有下载为jenkins而正常运行。