我在文件中定义了一个方法" shared.groovy"像这样:
def static configure()
{
.....
}
我在同一个目录中有另一个脚本文件,我需要调用configure()方法。我试试这种方式
shared.configure()
但是得到了这个例外:
FATAL: No such property: shared for class: script14095498929361009943305
groovy.lang.MissingPropertyException: No such property: shared for class: script14095498929361009943305
另一个想法?
答案 0 :(得分:3)
One.groovy:
static void m1() {
println 'One'
}
Two.groovy
One.m1()
工作正常。
答案 1 :(得分:2)
您可能需要先加载文件。
我只知道在运行时动态加载groovy的两种方法
def sh = new GroovyShell() File f = new File("Yourfile"); def closure = sh.evaluate(f.text);
GroovyClassLoader gcl = new GroovyClassLoader(); File f = new File("Yourfile"); Class tempClass = gcl.parseClass(f); tempClass.configure();
我不知道有什么办法只解析一个方法,这就是为什么我总是使用这些方法之一(我甚至创建了虚拟类并将我需要的静态方法放入其中,这完美无缺)
答案 2 :(得分:1)
这似乎在Groovy 2.5.3中已解决。在此之前,您需要import static shared.configure
(除import shared
之外)然后才能呼叫shared.configure()
。