代码之家  ›  专栏  ›  技术社区  ›  ImranRazaKhan

声明性管道中的文件参数

  •  1
  • ImranRazaKhan  · 技术社区  · 6 年前

    我正在开发声明性管道,并希望使用file参数读取其内容,但它不能按预期工作

    parameters{
            file(fileLocation:'list.txt', description:'contains list of projects to be build')
       }
    

    我有以下错误

    org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
    WorkflowScript: 12: Invalid parameter "fileLocation", did you mean "description"? @ line 12, column 14.
               file(fileLocation:'release-list.txt', description:'contains list of projects to be build')
    

    下面是基本步骤插件的另一个选项

    readFile: Read file from workspace
    Reads a file from a relative path (with root in current directory, usually workspace) and returns its content as a plain string.
    file
    Relative ( /-separated) path to file within a workspace to read.
    Type: String
    encoding (optional)
    Type: String
    

    它以脚本的方式工作

    def myfile = readFile('list.txt')
    echo "${myfile}"
    

    但是如何在声明性脚本中直接使用它,就像我们使用dir这样的其他基本步骤一样??

    2 回复  |  直到 6 年前
        1
  •  0
  •   ImranRazaKhan    6 年前

    以下语法有效

    parameters{
            file name:'list.txt', description:'contains list of projects to be build'
       }
    

    但fileLocation参数仍然不可接受。

    以下语法可在Jenkins2 Up&Running book中找到,但不起作用

    parameters{
            file(fileLocation:'list.txt', description:'contains list of projects to be build')
       }
    
        2
  •  0
  •   Alisdair Robertson    6 年前

    file参数的正确参数是 name description . 所以应该是:

    file(name:'list.txt', description:'contains list of projects to be build')
    

    然而,有一个开放的詹金斯问题可以追溯到2015年,关于文件参数不适用于管道,所以我认为即使这样也不能解决您的问题。 https://issues.jenkins-ci.org/browse/JENKINS-27413