class - 使用 Jenkins 共享库作为类
问题描述
我有一个 Jenkins 文件,我正在尝试从我的共享库中实例化一个 groovy 类。我得到“无法解决类测试”
我在共享库中有一个 src/com/org/foo.groovy 文件:
package com.org
class Test implements Serializable{
String val
Test(val) {
this.val = val
}
}
我正在尝试在我的 jenkinsfile 中实例化它
@Library('Shared-Library@master')
import com.org //also tried to use with .foo with no success
def t = new Test("a") //doesnt work
def t = new foo.Test("a")//doesnt work
def t = new com.org.foo.Test("a")//doesnt work
如果我将文件称为一个类(我无权访问它的构造函数),那么有效的是什么。那是:
@Library('Shared-Library@master')
def t = new foo.com.org.foo()
这很好,让我使用 foo 函数。但是,我失去了给类常量和用参数构造它的能力。
知道如何定义和使用共享库中的类吗?谢谢
解决方案
- 您的课程范围是默认范围。您可以将范围更改为公共
- 它引发错误,因为您在脚本块之外创建了一个类的对象。试试下面的代码,它应该可以工作。试试下面的代码
@Library('Shared-Library@master')
import com.org.*;
stages{
stage('Demo') {
steps{
script{
def t = new Test("a") //this should work
}
}
}
}
推荐阅读
- c - c中的Exec函数在它应该返回时没有返回-1
- javascript - React Side bar - 导航类似于提供的链接
- python - 我正在编写一个 Python 加密程序,它会随着时间改变符号的值,任何想法如何开始
- c# - How to read binary files until EOF in C#
- c++ - How to increase the exponents using loops?
- jquery - JqGrid 获取列值
- javascript - 如何创建一个在不同时间执行 3 种不同功能的下一个按钮?
- sql-server - 如何在.net中执行动态SQL?
- .htaccess - htaccess 中的简单 rewritecond 无法按预期工作
- vba - 计算 TO 字段中的 VBA 收件人数