我正在嘗試擴展一個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