Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 将参数传递到全局共享库-构造函数_Jenkins_Jenkins Pipeline_Jenkins Groovy - Fatal编程技术网

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
}