运行maven命令jenkins时权限被拒绝

时间:2017-12-11 09:38:05

标签: jenkins permission-denied

我在jenkins的/home/tes/pom.xml中的pom.xml上运行maven <key>UIViewControllerBasedStatusBarAppearance</key> <false/> 时面临权限被拒绝的问题。任何建议

clean test

4 个答案:

答案 0 :(得分:1)

版主删除了我之前的回答;我知道自第一次发布以来已经过去了一段时间,但我最终还是在同一个地方。我坚持要对所有答案进行补充,因为我已经找到了我的案例中的问题所在,结果与本案例中报告的结果相同。

我想评论一下,就我而言,原因是我没有 JDK,而只是在全局工具配置 > JDK > JDK 安装的 JAVA_HOME 中配置了 JRE。事实上,Jenkins 会警告您该路径并未指向包含 JDK 的内容。

某些插件需要 JDK,例如 Maven 集成或 Docker 管道,如 Jenkins 文档中的 Java requirements 部分所述。所以这必须检查,因为它出人意料地导致了奇怪的错误:

> git rev-parse refs/remotes/origin/celsus_0-1-0^{commit} # timeout=10
Checking out Revision 0c533cf2327a416a254afa2348abafe7790ba67f (refs/remotes/origin/celsus_0-1-0)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 0c533cf2327a416a254afa2348abafe7790ba67f # timeout=10
Commit message: "first embrio of container image"
 > git rev-list --no-walk 0c533cf2327a416a254afa2348abafe7790ba67f # timeout=10
Parsing POMs
Established TCP socket on 40251
[build] $ /usr/lib/jvm/bin/java -cp /var/lib/jenkins/plugins/maven-plugin/WEB-INF/lib/maven35-agent-1.13.jar:/usr/share/maven/boot/plexus-classworlds-2.x.jar:/usr/share/maven/conf/logging jenkins.maven3.agent.Maven35Main /usr/share/maven /var/cache/jenkins/war/WEB-INF/lib/remoting-4.5.jar /var/lib/jenkins/plugins/maven-plugin/WEB-INF/lib/maven35-interceptor-1.13.jar /var/lib/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.13.jar 40251
ERROR: Failed to parse POMs
java.io.IOException: Cannot run program "/usr/lib/jvm/bin/java" (in directory "/var/lib/jenkins/workspace/build"): error=2, No such file or directory
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
    at hudson.Proc$LocalProc.<init>(Proc.java:252)
    at hudson.Proc$LocalProc.<init>(Proc.java:221)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:996)
    at hudson.Launcher$ProcStarter.start(Launcher.java:508)
    at hudson.maven.AbstractMavenProcessFactory.newProcess(AbstractMavenProcessFactory.java:280)
    at hudson.maven.ProcessCache.get(ProcessCache.java:236)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:802)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:514)
    at hudson.model.Run.execute(Run.java:1907)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
Caused by: java.io.IOException: error=2, No such file or directory
    at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
    at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:340)
    at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:271)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
    ... 13 more
Finished: FAILURE

类似的案例起源于这个案例,正如所提出的解决方案的不同性质所指出的那样。我想提请注意,这些与权限或 pom 解析有关的错误可能会隐藏真正的根本原因,并且错误消息并不总是像应有的那样明确和清晰。

希望它可以帮助其他人遇到同样的问题。

答案 1 :(得分:0)

只需为pom.xml文件授予所有读取权限:

chmod +r /home/tes/pom.xml

答案 2 :(得分:0)

我为jenkins安装了maven插件,并在root pom.xml中提供了pom.xml的完全限定路径,并修复了问题

答案 3 :(得分:0)

我认为这是Maven有权运行pom.xml的原因。 mvn命令可以通过终端运行,但不能通过jenkins运行。 因此,我们需要将当前用户添加到jenkins中,以使其正常工作。

关注此博客文章。它对我有用:

blogpost