如何在Jenkinsfile中使用“findFiles”?

19

我的 Jenkinsfile 包含以下阶段:

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个回答

24

13

虽然这个回答并没有直接解决原问题——插件没有安装——但搜索引擎会重定向到这个问题,并且我发现 文档 有点缺失。因此,我想在如何使用 findFiles 上补充一些答案。

由于我对文档不是完全满意,所以我查看了源代码和特别是 FindFilesStep 测试。其中有一行代码特别展示了如何使用 findFiles:

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

提醒一下,这些模式是Ant样式模式。例如,我想要一个包含所有文件和文件夹但不包括隐藏文件夹.asccidoctor的任务,我写了如下语句:

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

3
我们使用以下语法来使用它:
def rpmFiles = findFiles(glob: "**/*.rpm")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接