在/vars
中,我有AaConfig.groovy
的文件夹。
在工作的Groovy脚本中,我有:
#!groovy
@Library('globals') _
Class config = AaConfig
我可以使用config
代替AaConfig
,在后续代码中没有问题。
这很有用,因为我可以调用不同的配置文件:
AaConfig
,BbConfig
等,而无需进行任何更改,因为我是通过config
来调用它们的
所以现在我很贪婪:-),并想从外部指定配置文件:
#!groovy
@Library('globals') _
String configName = "AaConfig"
Class config = Class.forName(configName)
现在我得到了:
java.lang.ClassNotFoundException: AaConfig
有什么办法解决这个问题吗?
答案 0 :(得分:2)
如果要通过反射加载var time = (new Date(str)).toLocaleTimeString(defaultlang, options);
类,则必须使用管道脚本使用的相同的类加载器。在这种情况下,AaConfig
使用ClassLoaderForClassArtifacts
,而Groovy CPS插件使用CpsGroovyShell$CleanGroovyClassLoader
。
下面您可以找到使用管道当前类加载器加载类的示例:
Class.forName()