使用GroovyConsole我有以下文件main.groovy:
new Helpers().test("test method called")
在同一目录中具有内容的Helpers.groovy文件
def test(String str) {
println "test method called with: " + str
}
在结果中运行结果:
groovy> new Helpers().test("test method called")
test method called with: test method called
但是,在Jenkins使用DSL的情况下,我在文件generator.groovy中有类似的代码:
new Helpers().test("test method called")
然后在具有相同目录的Helpers.groovy中:
def test(String str) {
println("test method called on: " + str)
}
但是,当我运行时,在日志中没有任何输出(来自println)。 如果我的def位于同一main.groovy文件中,则可以正常工作。
可能缺少一些基本知识。它在jenkins中正在编译/绿色,因此不确定如何适应它,因此运行时将执行我想要的操作。
答案 0 :(得分:0)
从other files调用方法时,您需要导入类
在与DSL相同级别上创建一个名为Utility的目录,并在Utilitys目录中创建一个名为MyUtilities.groovy的文件,其内容如下:
package utilities class MyUtilities { static void addMyFeature(def job) { job.with { description('Arbitrary feature') } } }
然后从DSL中添加如下内容:
import utilities.MyUtilities