Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins构建中的java.nio.file.AccessDeniedException_Java_Macos_Svn_Jenkins_Access Denied - Fatal编程技术网

Jenkins构建中的java.nio.file.AccessDeniedException

Jenkins构建中的java.nio.file.AccessDeniedException,java,macos,svn,jenkins,access-denied,Java,Macos,Svn,Jenkins,Access Denied,我正在MacOSX服务器上设置Jenkins系统,以便在svn签入后自动生成。但是当构建开始时,我在控制台输出中得到这些java错误。有人有过詹金斯和这些错误的经验吗 Gestartet durch Benutzer匿名 [EnvInject]-加载节点环境变量。 工作区中的Baue/Users/Shared/Jenkins/Home/jobs/myProject/Workspace 正在清理本地目录。 java.nio.file.AccessDeniedException:/Users/Sh

我正在MacOSX服务器上设置Jenkins系统,以便在svn签入后自动生成。但是当构建开始时,我在控制台输出中得到这些java错误。有人有过詹金斯和这些错误的经验吗

Gestartet durch Benutzer匿名
[EnvInject]-加载节点环境变量。
工作区中的Baue/Users/Shared/Jenkins/Home/jobs/myProject/Workspace
正在清理本地目录。
java.nio.file.AccessDeniedException:/Users/Shared/Jenkins/Home/jobs/my Project/workspace/.svn/pristine/04/040d4cd4de48d844246c38e096a78718879bfafb.svn-base
位于sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
位于sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
位于sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
位于sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:244)
位于sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
位于java.nio.file.Files.delete(Files.java:1126)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:497)
位于hudson.Util.deleteFile(Util.java:255)
位于hudson.Util.deleteRecursive(Util.java:318)
位于hudson.Util.deleteContentsRecursive(Util.java:220)
位于hudson.Util.deleteRecursive(Util.java:309)
位于hudson.Util.deleteContentsRecursive(Util.java:220)
位于hudson.Util.deleteRecursive(Util.java:309)
位于hudson.Util.deleteContentsRecursive(Util.java:220)
位于hudson.Util.deleteRecursive(Util.java:309)
位于hudson.Util.deleteContentsRecursive(Util.java:220)
位于hudson.scm.subversion.CheckoutUpdater$1.perform(CheckoutUpdater.java:81)
位于hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:162)
在hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:988)
位于hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:969)
位于hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:945)
位于hudson.FilePath.act(FilePath.java:990)
在hudson.FilePath.act(FilePath.java:968)
位于hudson.scm.SubversionSCM.checkout(SubversionSCM.java:894)
位于hudson.scm.SubversionSCM.checkout(SubversionSCM.java:830)
在hudson.scm.scm.checkout(scm.java:485)
在hudson.model.AbstractProject.checkout(AbstractProject.java:1276)上
位于hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:607)
位于jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
位于hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529)
在hudson.model.Run.execute(Run.java:1738)
运行(FreeStyleBuild.java:43)
在hudson.model.ResourceController.execute(ResourceController.java:98)
运行(Executor.java:410)
发送电子邮件至:m。。。

完成:失败
运行jenkins的操作系统用户似乎对完整工作区目录或工作区目录中的某些文件没有写入权限。

发生此问题的原因是您没有在jenkins jobs目录上执行作业的权限(在您的情况下,
/Users/Shared/Jenkins/Home/jobs

当我试图将作业目录从一台服务器复制到另一台服务器时,我遇到了同样的问题

要解决此问题,我们需要将
作业的所有者
更改为
詹金斯
用户:

sudo chown -R jenkins:jenkins jobs

这将解决您的问题。

您需要修改jenkins用户的权限,以便可以运行shell命令。 将您机器的root用户设置为jenkins的默认用户,将解决您的问题

以下流程适用于CentOS

  • 打开此脚本(使用VIM或其他编辑器):
  • vim/etc/sysconfig/jenkins

  • 找到此$JENKINS_用户并更改为“root”:
  • $JENKINS\u USER=“root”

  • 然后更改Jenkins home、webroot和日志的所有权:
  • 重新启动Jenkins并检查用户是否已更改:

  • 该文件被另一个进程锁定。可能是您在某个程序(SVN客户端)中打开了该文件或者它是在Explorer中打开的目录,或者它是命令shell的工作目录。在ubuntu上,以下命令修复了问题:
    sudo chown-R jenkins:jenkins/var/lib/jenkins/
    ,需要重新启动jenkins。这是唯一的永久解决方案,谢谢这是一个非常糟糕的答案。jenkins不应该以
    roo的身份运行t
    有一个很好的理由,那就是安全性。
    chown -R root:root /var/lib/jenkins
    chown -R root:root /var/cache/jenkins
    chown -R root:root /var/log/jenkins
    
    service jenkins restart
    ps -ef | grep jenkins