如何使用" findFiles"在Jenkins文件中?

时间:2018-06-04 07:37:47

标签: jenkins jenkins-plugins jenkins-pipeline

我的Jenkins文件包含这个阶段:

stage('Deploy') {
    steps {
        script {
            def rpmFiles = findFiles glob: "**/*.rpm"
            def rpmFile = rpmFiles[0]
        }
    }
}

我想用它来将工件部署到服务器。如何避免以下错误?

java.lang.NoSuchMethodError: No such DSL method 'findFiles' found among steps [...]

3 个答案:

答案 0 :(得分:5)

findFiles步骤是Pipeline Utility Steps Plugin的一部分,因此如果您要使用该步骤,则必须安装它。

答案 1 :(得分:1)

我们使用以下语法:

def rpmFiles = findFiles(glob: "**/*.rpm")

答案 2 :(得分:0)

虽然此答案不能直接解决原始问题的问题-未安装插件-搜索引擎确实将其重定向到此问题,但我发现documentation有点不足。因此,我想补充一些有关如何使用findFiles的答案。

由于我对文档不完全满意,因此特别关注了源代码和FindFilesStep测试。特别是其中一行显示了如何最佳使用findFiles

def files = findFiles(glob: '**/*.txt', excludes: 'b/*.txt,**/aba/*.txt')

提醒一下,模式为ant style patterns。例如,我想要一个包含所有文件和文件夹但隐藏文件夹.asccidoctor的任务,我写道:

def docFiles
dir('build/docs/asciidoc/') {
    docFiles = findFiles(glob: '**', excludes: '**/.asciidoctor/**')
}