库Jenkins Step无法动态加载方法

时间:2018-07-09 16:30:03

标签: jenkins shared-libraries jenkins-pipeline

我想在共享库的src文件夹中创建一个类的新实例。当然,我可以使用顶部的def object = new myClass()做一个简单的import,但我想动态地初始化类(尝试使用Class.forName对我来说失败了,我不会使用该解决方案)。

我正在尝试从vars文件夹而不是src下的常规文件中执行此操作。 所以我要做的是:def customized = library("mySharedLib").com.x.x.MyClass.new(this)

如共享库文档中所指定:Step library

但是我遇到了错误:

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)吉拉({3}}中,存在相同的问题……任何想法?我不明白发生了什么!我尝试在src文件夹下的类中创建一个方法,该方法执行步骤库调用,但返回相同的错误。

1 个答案:

答案 0 :(得分:1)

无需从vars文件夹中加载库(我假设它与src文件夹位于同一存储库中)。只需使用简单的导入方式导入类,然后像简单的常规操作一样使用它即可。

import org.pack.Myclass
def call() {
    def myClass = new MyClass()
}