我有一些库脚本: 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