我有一个正在运行的 Jenkins 实例,它应该构建一个 Android 项目。当我启动该任务时,我收到以下异常:
无法使用 BuildScopeServices.createScriptPluginFactory() 创建 ScriptPluginFactory 类型的服务
创建目录“/home/espresso/jenkins_workspace/workspace/myproject/.gradle/4.1/fileHashes”时无法创建父目录“/home/espresso/jenkins_workspace/workspace/myproject/.gradle”
Jenkins 以 root 身份运行,文件夹ls -la
为myproject
:
drwxr-xr-x 11 root root 4096 Nov 16 15:07 myproject
环境变量GRADLE_USER_HOME
设置为/home/espresso/.gradle
,ls -la
该文件夹提供:
drwxrwxrwx 6 root root 4096 Nov 16 11:30 .gradle
为什么 Jenkins 无法创建该文件夹?下面的整个目录结构jenkins_workspace
都是由 Jenkins 创建的,所以权限应该没问题?
答案1
勾选后一切运行正常
Force GRADLE_USER_HOME to use workspace
我不知道为什么这样做可以工作。$GRADLE_USER_HOME
作业的环境变量设置为/home/espresso/.gradle
,并且作业作为 root 拥有该文件夹的所有权限。另外,我不明白为什么缺少一个 gradle 文件夹的权限会导致作业无法在其他gradle 文件夹。