首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jenkins:使用声明式语法从Jenkinsfile导入外部包

Jenkins:使用声明式语法从Jenkinsfile导入外部包
EN

Stack Overflow用户
提问于 2017-07-13 08:42:45
回答 1查看 2.8K关注 0票数 4

我有一个包含“导入groovy.json.JsonSlurper”的groovy代码。

我花了一天时间进行测试,我不知道如何使用声明式语法加载外部库。

这是我的密码:

代码语言:javascript
运行
复制
pipeline {

agent any

import groovy.json.JsonSlurper

        stages {

                stage("test") {

                        steps {
                         }
                }
        }
}

我读过jenkins文档,我试着使用下一个,但没有成功:

@ groovy.json.JsonSlurper (‘groovy.json.JsonSlurper’)导入groovy.json.JsonSlurper

导入和@抓取都不被识别。什么主意?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-08-08 22:42:05

@Daniel所说的关于import语法是正确的,但我发现的@Grab语法在Jenkins Pipeline script from SCM中直接维护的Pipeline script之间存在行为差异。

当我为测试人员管道作业在管道脚本中放置一个抓取命令时,我发现,无论是否存在抓取命令,还是将其注释掉,都没有任何区别。

但是,当从Pipeline script from SCM中使用时,它会引发以下异常.

代码语言:javascript
运行
复制
java.lang.RuntimeException: No suitable ClassLoader found for grab

我从SCM脚本中删除了它,最后一切都完成了。

附加背景

我不知道在SCM版本中抓取为什么会阻塞,但是groovy编辑器肯定有一些工作部件,因为如果您定义了一个部分抓取命令,它将给出一些验证错误,如您在下面的红色X框中看到的那样,指向断行,错误为The missing attribute "module" is required in @Grab annotations

因此,脚本验证器知道它调用它时的抓取注释,并且它有一个组属性和一个模块属性。在本例中,我使用的是所谓的速记符号

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45075621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档