jenkins - 库 Jenkins Step 无法动态加载方法
问题描述
我想在共享库的 src 文件夹中创建一个类的新实例。当然,我可以在顶部做一个简单def object = new myClass()
的import
操作,但我想动态启动类(尝试使用Class.forName
失败,我不会使用该解决方案)。
我正在尝试从文件vars
夹下的 groovy 文件中执行此操作,而不是src
. 所以我要做的是:def customized = library("mySharedLib").com.x.x.MyClass.new(this)
正如共享库的文档中指定的那样:步骤库
但我得到了错误:
java.lang.IllegalAccessException: com.x.x.MyClass was defined in file:///Path/to/master/workspace/jobs/project/builds/297/libs/mySharedLib/vars/generic.groovy which was not inside file:///Path/to/master/workspace/jobs/project/branches/PR-50/builds/297/libs/mySharedLib/src/
在 Jenkins Jira Here中,有同样的问题......有什么想法吗?我不明白发生了什么事!src
我尝试在执行步骤库调用的文件夹下的类中创建一个方法,但它返回相同的错误。
解决方案
无需从 vars 文件夹中加载库(我假设它与 src 文件夹位于同一个存储库中)。只需使用普通导入导入类并像在普通 groovy 中一样使用它,例如
import org.pack.Myclass
def call() {
def myClass = new MyClass()
}
推荐阅读
- javascript - 使用 axios 时如何保存快速会话?
- android - 如何同步读取 Firebase 实时数据库值?
- node.js - 如何使用 SendGrid 将图像嵌入到 Node.js 中的 html 邮件
- google-maps - Agm 谷歌地图 - 如何将纬度和经度绑定到 HTML
- oauth-2.0 - 点击浏览器上的后退按钮后第二次登录时关联失败
- javascript - 在指定的时间内运行一个函数并停止
- c# - EF:当它们不为空时按2个字段排序
- php - 如何在 PHP 中突出显示 utf8 文本中的非 utf8 字符串?
- wordpress - 如何在 wordpress 中模拟检查元素结果?
- typescript - 在 TypeScript 中将字符串转换为枚举