Jenkins Pipeline-Groovy遍历pwd()会导致java.io.FileNotFoundException
我正试图使用一些groovy代码遍历工作区目录,但由于Jenkins Pipeline-Groovy遍历pwd()会导致java.io.FileNotFoundException,jenkins,groovy,continuous-integration,jenkins-pipeline,Jenkins,Groovy,Continuous Integration,Jenkins Pipeline,我正试图使用一些groovy代码遍历工作区目录,但由于java.io.FileNotFoundException:/home/user/JENKINS2\u STATE/workspace,作业失败/job@2即使目录存在 管道: import groovy.io.FileType import com.cloudbees.groovy.cps.NonCPS @NonCPS def traverseHelper() { new File(pwd()).traverse(type: Fi
java.io.FileNotFoundException:/home/user/JENKINS2\u STATE/workspace,作业失败/job@2
即使目录存在
管道:
import groovy.io.FileType
import com.cloudbees.groovy.cps.NonCPS
@NonCPS
def traverseHelper() {
new File(pwd()).traverse(type: FileType.FILES) {
println it.path
}
}
pipeline {
agent any
stages {
stage('Build') {
steps {
parallel(
"Linux": {
node(label: 'lnx') {
script {
//checking out from git here
traverseHelper()
}
}
},
"Windows": {
node(label: 'win') {
script {
//do Windows stuff here
}
}
}
)
}
}
//other stages here
}
}
groovy代码在本地工作(没有
@NonCPS
并且用System.getProperty(“user.dir”)
替换pwd()
)。问题在于groovy脚本在主节点上执行,因此当您执行新建文件(…)
时,您在主节点上创建一个文件指针,而不是从节点/代理。相反,请使用。中提供的方法。问题是groovy脚本在主机上执行,因此当您执行新建文件(…)
时,将在主机上而不是从/节点/代理上创建文件指针。相反,请使用中提供的