我有一些庫腳本: lib1.groovy:包括Groovy腳本一些Groovy腳本
def a(){
}
lib2.groovy:
def b(){
}
lib3.groovy:
def c(){
}
並希望在另一個腳本中使用它們: conf.groovy:
a()
b()
c()
conf.groovy是由用戶配置的,他不知道我的後臺lib腳本!他只知道提供的方法/任務:a(),b(),c()。實際上我爲用戶簡單創建了lib腳本。
有什麼辦法可以將lib目錄(腳本lib1,lib2m,lib3)中的所有腳本包含到conf.groovy腳本中? 或者,有沒有其他的機制呢? 我想在runner腳本/ java類中運行conf.groovy(使用groovy shell,loader o腳本引擎)。
main.groovy:
File currentDir = new File(".")
String[] roots = {currentDir.getAbsolutePath()}
GroovyScriptEngine gse = new GroovyScriptEngine(roots)
gse.run('confg.groovy', binding)
的可能的複製[從groovy腳本加載腳本](https://stackoverflow.com/questions/9004303/load-script-from-groovy-script) –
謝謝Szymon!但我不想在我的conf.groovy文件中插入def script = new GroovyScriptEngine('。').with {loadScriptByName('lib1.groovy')} this.metaClass.mixin腳本! conf.groovy是一個腳本,我給用戶配置他的任務,我不希望用戶參與此。其實我有另一個腳本(main.groovy)運行confg.groovy(使用GroovyShell,Loader或ScriptEngine)。我編輯的問題更清楚。 –
你有c()在lib2和lib3中。哪一個應該被稱爲? – daggett