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

无法在Jenkins管道中创建新文件

梁成双
2023-03-14

我正试图在Jenkins管道中创建新文件,但出现了错误。错误: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'
                    }
                }
            }
        }
    }

共有1个答案

佴阳辉
2023-03-14

您的文件夹似乎不存在。除非有要求,否则不要在创建文件时提供绝对路径。我看到,在您的情况下,您需要在工作区中创建一个文件。始终使用${WORKSPACE}获取当前工作目录。

def newFile = new File("${WORKSPACE}/test.txt")
newFile.createNewFile() 
 类似资料:
  • 我正在尝试从管道中自动创建Jenkins管道构建。 我有一个管道,它创建一个比特桶存储库并向其提交一些代码,包括一个Jenkinsfile。 我需要向此管道添加另一个步骤,然后为其创建管道生成,这将运行 Jenkinsfile 中的步骤。 我认为Jobs DSL应该能够处理这一点,但我找到的文档非常稀少,我仍然不完全确定是否有可能或如何做到这一点。 任何帮助都将不胜感激。我想生成的Pipeline

  • 我有一个简单的Jenkinsfile,我想在其中从工作区加载一些数据。我正在使用管道插件来利用存储库中的Jenkinsfile。构建被外包给匹配的Jenkins代理。当我尝试使用“readFile”时,我收到以下消息: Java语言io。FileNotFoundException:/path/to/jenkins/workspace/XXXXX/project/data。json(无此类文件或目录

  • 通常,我会通过Azure DevOps门户创建一个新的构建管道。然后,编辑器将带我完成选择项目源、存储库和模板的步骤。之后,我可以选择创建一个新分支或直接提交到主分支。 但是,这一次,我的分支中有一个现有的文件。我在本地使用文本编辑器创建了它,并将此分支推送到Azure运营模式。我想附加此文件,并让Azure管道创建新版本并将其排队。但是我找不到任何选择。导入生成管道选项仅接受JSON文件。 是否

  • 问题内容: 我能够运行以下shell脚本,但无法从Jenkins管道代码运行。 尝试1。 输出: 尝试2: 尝试过sh“”“ 输出 : 美元符号后的非法字符串体字符;解决方案:要么转义文字美元符号,要么将值表达式括起来 有人能帮我吗? 问题答案: 这应该工作。 您还需要在调用下面的新subshel​​l时转义$

  • 问题内容: 我有一个XML文件,我想将其用作管道脚本的输入。问题是XMLParser不可序列化,因此我将其放在NonCPS函数中,但是因此丢失了Node对象。 这是管道脚本: 这是一个输入样本: 结果如下: 我正在使用Jenkins 2.7和管道2.1,这是最新的。 问题答案: 您可以使用XmlSlurper,它对我有用。