Jenkins 将参数传递到全局共享库-构造函数
我有一个简单的问题: 我有一个全局(非沙盒)Jenkins 将参数传递到全局共享库-构造函数,jenkins,jenkins-pipeline,jenkins-groovy,Jenkins,Jenkins Pipeline,Jenkins Groovy,我有一个简单的问题: 我有一个全局(非沙盒)/srclibrary-utils 我需要在构造时将参数传递给UTIL @Library(“Woop”) def utils=新的a.b.c.d.utils(脚本::this) 作品和脚本参考存放在: 公共类Utils实现可序列化{ 脚本 如果我尝试添加一个参数: @Library(“Woop”) def utils=新的a.b.c.d.utils(脚本::this,3) 并更改Utils以添加int 公共类Utils实现可序列化{ 脚本 整数三
/src
library-utils
我需要在构造时将参数传递给UTIL
@Library(“Woop”)
def utils=新的a.b.c.d.utils(脚本::this)
作品和脚本参考存放在:
公共类Utils实现可序列化{
脚本
如果我尝试添加一个参数:
@Library(“Woop”)
def utils=新的a.b.c.d.utils(脚本::this,3)
并更改Utils以添加int
公共类Utils实现可序列化{
脚本
整数三
我得到:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:
未分类的新a.b.c.d.Utils java.util.LinkedHashMap java.lang.Integer
我不确定如何传递多个参数,以及如何接受多个参数。我所能做的就是猜测,这是非常低效和令人沮丧的
奖金问题
给定一个通过@library('Project')访问的文件夹库\vars\Abc.Groovy
。
如何将此库传递给共享全局库?
假设我们解决了最初的问题,我会打电话吗
新的a.b.c.d.Utils(脚本::this,Abc)
或
新的a.b.c.d.Utils(脚本::this,Abc.class)
?
应该如何在Utils类中定义它
我不清楚,因为Abc
应该是类Abc
的静态实例,所以我在这里感到困惑…:-(
Jenkins文档非常糟糕,令人尴尬。通常,将参数传递给构造函数是您希望记录的事情…如果您更改:
int three
到
否则,我将尝试显式添加构造函数,如下所示:
Utils(Script s, Integer i) {
script = s
three = i
}
这不是管道或库问题。要使用命名参数在groovy中调用contstructor,必须使用:
新的a.b.c.d.Utils(脚本:this,three:Abc)
虽然到目前为止,我从未在cps代码中使用命名参数,但我只是尝试了一下,而且效果很好。
另见:
您正在尝试调用命名参数构造函数吗?这不应该是新的a.b.c.d.Utils(脚本:this,three:Abc)?关于你的额外问题:不确定你想在这里实现什么。请用一些例子打开一个专门的问题。我想出来了,你必须以
Abc.class
的形式通过它,并正确地通过它。谢谢!把它归因于我是一名Java开发人员……Groovy是,我稍后会尝试,谢谢!看看它是否对我有效:-)
Utils(Script s, Integer i) {
script = s
three = i
}