我正在尝试扩展一个Eclipse代码生成器(用于从Hibernate VO生成DTO) - 并且它将Groovy用作其模板系统。如何设置嵌入式Groovy脚本类路径?
使用它来创建Groovy脚本的代码是一个有点怪异(不是我看到Groovy的文档),但它的工作原理,主要是:
GroovyShell shell = new GroovyShell();
script = shell.parse(source);
然后,后来:
Binding binding = (bindings == null ? new Binding() : new Binding(bindings));
Script scriptInstance = InvokerHelper.createScript(script.getClass(), binding);
scriptInstance.setProperty("out", out);
scriptInstance.run();
out.flush();
现在,这工作得很好,直到遇到不直接在项目中的对象的引用。在脚本中,它遍历它正在处理的Class的属性 - 当它执行此操作时,Groovy会查看所有方法,以及何时无法为其中一个方法参数找到类定义,它会突出显示。在这种情况下,当它发现任何对Hibernate的引用时会死亡,但我相信它会带来更多的麻烦。它不需要对他们做任何事情,但如果不知道他们显然是什么,它就无法生存。
Script似乎没有一个类加载器,我可以提供任何类路径信息,所以我尝试将它提供给GroovyShell - 没有区别。
解决这个问题的正确方法是什么,以便Groovy解释器可以找到我的项目引用Jars?
可以直接使用.groovy文件做类似的事情吗? (即不要先编译它们) – hithwen 2012-03-06 18:18:44