我想在共享库的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
文件夹下的类中创建一个方法,该方法执行步骤库调用,但返回相同的错误。
答案 0 :(得分:1)
无需从vars文件夹中加载库(我假设它与src文件夹位于同一存储库中)。只需使用简单的导入方式导入类,然后像简单的常规操作一样使用它即可。
import org.pack.Myclass
def call() {
def myClass = new MyClass()
}