[英]Import external (not compiled) groovy classes and keep them outside the jar
我在Eclipse中創建了一個Groovy項目。 我想構建一個可執行jar,將一些常規文件源保留在jar外,以便可以在運行時對其進行修改和重新加載。
我知道我可以使用GroovyScriptEngine做到這一點:
Class modelClass = new GroovyScriptEngine( "path_to_file" ).loadScriptByName( "Model.groovy" ) ;
Object modelInstance = modelClass.newInstance() ;
現在,我的問題是:是否可以例如在我的主類中簡單地使用:
import Model
class Main {
static void main(String[] args) {
Model model = new Model(args)
...
}
我希望我的問題很清楚...非常感謝您的幫助!
如果您的jar在groovy的上下文中,那么您可以將groovy文件(類)添加到classpath文件夾中。 groovy類加載器會在訪問時自動編譯它們。
否則,創建一個groovy引擎,將groovy文件添加到classpath目錄。
必須要編譯一些東西。 如果將它們保留在jar之外,但位於類路徑中,則必須將它們編譯為.class文件,系統才能將它們拾取。
最好的選擇是使用您提到的ScriptEngine在內部“編譯”它們(而不保存類)。 這使得.jar中的類很難靈活地訪問外部groovy腳本,但這可能是最好的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.