获取Groovy脚本名称

时间:2018-07-10 22:29:51

标签: jenkins groovy jenkins-pipeline jenkins-groovy

我有一个名为a.groovy的文件 在a.groovy中,我有:

println(this.class.name)

load a.groovy(运行它)时,我看到“ Script1”是println的结果。

如何获取已加载文件的名称-“ a”或“ a.groovy?”


更新1

我尝试了以下操作:

class TrustedLib {
    void Test(Class scriptClass) {
        String scriptPath = 
            scriptClass.protectionDomain.codeSource.location.path
        println(scriptPath)
    }
}

这在脚本(node)中称为:

Test(getClass())

Test位于全局受信任的库中,因为:

  1. 我希望代码可重复使用
  2. 我无法在沙盒中要求protectionDomain

scriptPath显示为“ /Groovy/shell”(scriptClass,顺带是Script1

注意: 如果我将Test更改为:

class TrustedLib {
    void Test() {
        String scriptPath = 
            getClass().protectionDomain.codeSource.location.path
        println(scriptPath)
    }
}

THE_PATH/TrustedLib.groovy已打印,这是正确的路径

那么,再次挫败-如何获得真实的文件名?如何获得基础类?

0 个答案:

没有答案