【发布时间】:2020-01-30 00:19:25
【问题描述】:
我正在尝试在 Jenkins Pipeline 中创建新文件,但出现错误。 错误: java.io.FileNotFoundException: /var/lib/jenkins/workspace/Pipeline-Groovy/test.txt (没有这样的文件或目录)
但是当我在没有管道的情况下执行以下命令时,它会创建新文件
def newFile = new File("/var/lib/jenkins/workspace/test/test.txt")
newFile.append("hello\n")
println newFile.text
如果我在管道中使用相同的代码得到上述错误
pipeline {
agent any
options {
buildDiscarder(logRotator(numToKeepStr: '5'))
timestamps()
}
stages {
stage('Demo1-stage') {
steps {
deleteDir()
script {
def Jobname = "${JOB_NAME}"
echo Jobname
}
}
}
stage('Demo-2stage') {
steps {
script {
def workspace = "${WORKSPACE}"
echo workspace
def newFile = new File("/var/lib/jenkins/workspace/Pipeline-Groovy/test.txt")
newFile.createNewFile()
sh 'ls -lrt'
}
}
}
}
}
【问题讨论】:
-
你确定你的路径存在吗?为什么不使用 ${WORKSPACE} 而不是硬编码的绝对路径?
-
是的,我们可以使用工作区。但出于测试目的,仅对路径进行硬编码。但是当我在 Jenkins 管道中执行相同的命令时,会出现该错误。路径可用。
-
老实说,如果您直接在流水线阶段而不是在库代码中执行此操作,您可能会受益于仅使用内部
writeFile而不是为相同的功能编写自己的代码。
标签: jenkins groovy jenkins-pipeline jenkins-plugins jenkins-groovy