J'ai quelques scripts de bibliothèque: lib1.groovy:Y compris certains scripts Groovy dans un script groovy
def a(){
}
lib2.groovy:
def b(){
}
lib3.groovy:
def c(){
}
et que vous souhaitez utiliser dans un autre scripts: conf.groovy:Conf.groovy est configuré par l'utilisateur et il n'est pas au courant de mes scripts lib d'arrière-plan! il ne connaît que les méthodes/tâches fournies: a(), b(), c(). En fait, j'ai créé des scripts lib pour la simplicité de l'utilisateur.
Est-il possible d'inclure tous les scripts d'un répertoire lib (scripts lib1, lib2m, lib3) dans le (s) script (s) conf.groovy? Ou, y a-t-il un mécanisme de rechange à cela? J'essaie d'exécuter conf.groovy dans un script runner/java (en utilisant groovy shell, loader ou script engine).
main.groovy:
File currentDir = new File(".")
String[] roots = {currentDir.getAbsolutePath()}
GroovyScriptEngine gse = new GroovyScriptEngine(roots)
gse.run('confg.groovy', binding)
double possible de [ Charger le script du script groovy] (https://stackoverflow.com/questions/9004303/load-script-from-groovy-script) –
Merci Szymon! mais je ne veux pas insérer def script = new GroovyScriptEngine ('.') .with {loadScriptByName ('lib1.groovy')} ce script .metaClass.mixin dans mon fichier conf.groovy !. conf.groovy est un script que je donne à l'utilisateur pour configurer ses tâches et je ne veux pas que l'utilisateur s'en mêle. En fait, j'ai un autre script (main.groovy) qui exécute confg.groovy (en utilisant GroovyShell, Loader ou ScriptEngine). J'ai édité la question pour être plus clair. –
vous avez c() dans lib2 et dans lib3. Lequel devrait être appelé? – daggett