Java 管道脚本尝试在@2工作区中创建文件

Java 管道脚本尝试在@2工作区中创建文件,java,jenkins,groovy,jenkins-pipeline,jenkins-groovy,Java,Jenkins,Groovy,Jenkins Pipeline,Jenkins Groovy,对于以下groovy代码: node('worker_node'){ ws("${WORKSPACE}"){ createPropertiesFile() } } def createPropertiesFile(){ try{ sh 'whoami' def newFile = new File("sonar-project.properties") newFile.createN

对于以下groovy代码:

node('worker_node'){

    ws("${WORKSPACE}"){
        createPropertiesFile()    
    }

}


def createPropertiesFile(){

    try{
        sh 'whoami'    
        def newFile = new File("sonar-project.properties")
        newFile.createNewFile()
    }catch(Throwable e){

        echo "${e}"
    }
}

将创建两个工作空间:

/app/jenkins/workspace/Test/groovy_closures on worker_node
/app/jenkins/workspace/Test/groovy_closures@2 on worker_node // not sure about the purpose of this work space

但给出了以下输出:

Running on worker_node in /app/jenkins/workspace/Test/groovy_closures
[Pipeline] {
[Pipeline] ws
Running in /app/jenkins/workspace/Test/groovy_closures@2
[Pipeline] {
[Pipeline] sh
+ whoami
jenkins
[Pipeline] echo
java.io.IOException: Permission denied
[Pipeline] }
[Pipeline] // ws
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

$whoami
为运行此脚本的所有者提供了
jenkins
,如下所示:



1) 为什么用户
jenkins
没有创建文件的权限?如何在jenkins中配置用户
jenkins
以获得此权限


2) 如何在
/app/jenkins/workspace/Test/groovy\u闭包中创建文件,而不是在
/app/jenkins/workspace/Test/groovy中创建文件_closures@2

您是如何设置jenkins代理的?@JustAProgrammer抱歉。。其他人也参与了设置。您对@2 folder的创建有任何疑问吗?@JustAProgrammer您能更具体地回答您的问题吗?您是为它创建了服务还是只是在本地运行它(即.jar)?如果您只是为jenkins代理创建了一个用户,那么这可能会导致权限问题。
ws("${WORKSPACE}"){
  sh "touch file" // creates file in /app/jenkins/workspace/Test/groovy_closures@2 folder but not in /app/jenkins/workspace/Test/groovy_closures folder
}