我的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 [...]
答案 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/**')
}