[英]Jenkins: Get FOLDER Library by Name
在/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
任何想法如何解決這個問題?
如果要通過反射加載AaConfig
類,則必須使用管道腳本使用的相同的類加載器。 在這種情況下, Class.forName()
使用ClassLoaderForClassArtifacts
而Groovy CPS插件使用CpsGroovyShell$CleanGroovyClassLoader
。
在下面,您可以找到使用管道當前類加載器加載類的示例:
String configName = 'AaConfig'
Class config = this.getClass().getClassLoader().loadClass(configName)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.