当前位置: 首页 > 知识库问答 >
问题:

如何修复Jenkins中的maven权限问题

阎承嗣
2023-03-14

我安装了Jenkins作为docker容器。在Jenkins全局工具配置中,添加MAVEN_HOME(/usr/share/MAVEN)并选中“自动安装”。当我按下Build Now时,会出现以下错误:

Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/MavenProject
[WS-CLEANUP] Deleting project workspace...
[WS-CLEANUP] Deferred wipeout is used...
[WS-CLEANUP] Done
java.nio.file.AccessDeniedException: /usr/share/maven
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
    at java.nio.file.Files.createDirectory(Files.java:674)
    at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
    at java.nio.file.Files.createDirectories(Files.java:767)
    at hudson.FilePath.mkdirs(FilePath.java:3299)
    at hudson.FilePath.access$1300(FilePath.java:212)
    at hudson.FilePath$Mkdirs.invoke(FilePath.java:1252)
    at hudson.FilePath$Mkdirs.invoke(FilePath.java:1248)
    at hudson.FilePath.act(FilePath.java:1076)
    at hudson.FilePath.act(FilePath.java:1059)
    at hudson.FilePath.mkdirs(FilePath.java:1244)
    at hudson.FilePath.installIfNecessaryFrom(FilePath.java:907)
Caused: java.io.IOException: Failed to install https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip to /usr/share/maven...

我没有/var/jenkins_home/workspace/MavenProject目录。并且此目录位于具有完全权限的根帐户下。你知道我该怎么修吗?

共有1个答案

令狐宏浚
2023-03-14

这意味着在容器内部,Jenkins正在运行的用户帐户没有写入/usr/share/maven的权限来写入下载的maven版本。要么目录不存在,要么它可能属于root。

您可以通过在容器上以root用户身份启动交互式shell手动创建此目录:

docker exec -u 0 -ti name_of_container sh

然后在这个外壳上(不是在主机上!)

mkdir -p /usr/share/maven
chmod 777 /usr/share/maven

或者在你的Dockerfile中

RUN mkdir -p /usr/share/maven
RUN chmod 777 /usr/share/maven

这些示例只是为了简单起见,最好只向该目录添加Jenkins用户或组的权限。

 类似资料:
  • 我已经卸载并安装了3次Homebrew现在,因为它似乎从来不允许我安装任何东西,因为它拒绝我的权限,在大多数安装结束。 作为示例,我将发布当前面临的libjpeg下载场景。 我尝试安装libjpeg并得到:

  • 问题内容: 我在装有Ubuntu OS的计算机上安装了Docker。在安装docker之后,当我运行时 没关系,但是我想隐藏单词以使命令更短。 如果我写的命令没有这个词 显示以下内容: 当我尝试制作时也是如此 我该如何解决? 问题答案: 如果要以非root用户身份运行docker,则需要将其添加到docker组。 创建docker组(如果不存在) $ sudo groupadd docker 将您

  • 一切正常,但我想隐藏单词以使命令更简短。 如果我在编写命令时没有单词 显示以下内容: Docker:尝试连接到unix上得Docker后台程序套接字时获得得权限被拒绝:///var/run/Docker.sock:Post http://%2fvar%2frun%2fdocker.sock/v1.35/containers/create:拨号unix/var/run/Docker.sock:con

  • 学习詹金斯。Windows7运行Jenkins-2.73.3,一个maven项目会给出以下输出: 20:29:11[test]$“C:\程序文件\java\jdk1.8.0_102/bin/java”-xmx1024m-xx:maxpermsize=256m-cp“C:\程序文件(x86)\jenkins\plugins\maven-plugin\WEB-INF\lib\maven33-agent

  • 我正试图将位图保存到文件中,但android studio抛出了一个异常java。io。FileNotFoundException:/storage/simulated/0/Pictures/savedBitmap。png(权限被拒绝)我做错了什么?

  • 我试着下载新版本&&重新安装,但仍然无法工作,请帮助。