[英]What library does contain basic jenkins workflow groovy functions?
[英]What's the syntax to create a Serializable Groovy Class for Jenkins Workflow/Pipeline
使用Jenkins Workflow Groovy时,我在尝试为死简单类创建对象时遇到了序列化错误。 通过可序列化测试需要什么样的语法糖? 以下代码失败。 添加@Serializable行失败,“类java.io.Serializable不是@ java.io.Serializable中的注释”
//@Serializable
class TestClass {
def hello() {
println "halloooo"
}
}
def myobj = TestClass.newInstance()
node () {
myobj.hello()
}
感谢izzekil回答这个问题。
class TestClass implements Serializable {}
值得一提的是,Groovy类不需要显式实现Serializable
接口 - 任何Groovy类都实现以下两个接口: Serializable
和GroovyObject
。
但是,有是一个问题,像在Groovy CPS和詹金斯工作流程CPS库的问题中提到的一个。 它在groovy-cps中得到修复:1.20和workflow-cps:2.41 。
另一方面,使用Class.newInstance()
不是初始化Jenkins管道中对象的推荐方法。 默认情况下,此方法被列入黑名单,当您尝试批准它时,Jenkins警告您批准此签名可能会引入安全漏洞。
如果你看看Class.newInstance()
方法的实现,你会发现它使用像疯了一样的反射。 在这种情况下,使用new TestClass()
而不是TestClass.newInstance()
来实例化对象会更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.