我在Centos 7终端中使用了gradle build命令,得到了输出:
FAILURE: Build failed with an exception.
* What went wrong:
Could not create service of type InitScriptHandler using BuildScopeServices.createInitScriptHandler().
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Run Code Online (Sandbox Code Playgroud)
Aru*_*gal 37
尝试将GRADLE_USER_HOME
变量设置为您具有有效访问权限的文件夹.然后这个错误就会消失.
例如:当我gradle clean
在新的从机上运行命令时,我今天遇到了同样的问题.
我的Gradle版本是2.3.
使用--stacktrace,我开始知道它正在尝试创建.gradle
用于存储Gradle缓存数据的文件夹(当我调用Gradle在slave上运行清理任务时)它正在尝试在/ some/location/where/gradle下创建该文件夹/ exists OR some/path/location/xxx/yyy其中从属机器上运行Gradle的用户没有有效的写入权限(创建文件夹/文件).
即这是我用来从詹金斯机连接到从没有写权限的用户touch
/ mkdir
在默认位置的任何(其中摇篮就想,好吧,我应该在这里创建.gradle文件夹).
为了解决这个问题,我GRADLE_USER_HOME
在slave的ENVIRONMENT Variable部分添加了上面的变量.现在,因为我在我的主目录中有有效访问权限,所以我很好.
设置:
GRADLE_USER_HOME=~/gradle_2_3_cache/.gradle
Run Code Online (Sandbox Code Playgroud)
解决了这个问题.
您也可以将其设置为〜/ .gradle.但是我将它设置在我的~
主目录(gradle_2_3_cache)中的自定义文件夹下.这将帮助我,以防我有另一个奴隶运行在同一个Slave机器上,但是对于ex 2.5等版本有不同的Gradle版本,如果我想.gradle
在单独的文件夹中使用2.3和2.5/x版本的缓存.
小智 21
对我来说,杀死Gradle守护进程(gradle --stop
)确实有助于解决问题.
小智 9
通过简单地使用"sudo"并提供访问gradle以创建文件夹和写入缓存来解决问题.使用:
sudo ./gradlew
Run Code Online (Sandbox Code Playgroud)
小智 7
我有同样的问题.对我来说,如果你不能删除尝试重命名,我排除.gradle文件夹后就可以了.
小智 7
如果使用wrapper gradlew,请在根make目录.gradle_new中
mkdir .gradle_new
chmod -R 777 .gradle_new
Run Code Online (Sandbox Code Playgroud)
并使用参数运行gradlew:
--project-cache-dir .gradle_new
Run Code Online (Sandbox Code Playgroud)
如果您刚刚更新了JDK版本,并且在项目中设置了Gradle包装器,则可能需要仔细检查包装器版本是否支持新的JDK。如果不是,请考虑从项目(和)中删除与包装器相关的文件gradlew
,gradlew.bat
然后gradle/wrapper/*
使用Gradle CLI重新生成它们,如下所示:
gradle wrapper --gradle-version <new-version-number>
Run Code Online (Sandbox Code Playgroud)
例如 gradle wrapper --gradle-version 4.10.2
当然,这假设您的Gradle安装是最新的。如果没有,您将要先对其进行更新。
归档时间: |
|
查看次数: |
66540 次 |
最近记录: |