2008-11-19 6 views
1

J'ai parcouru le doc groovy et n'ai pas trouvé d'analogue, mais les choses sont organisées un peu au hasard. Je suis en train de passer de beanshell à groovy et j'utilisais la méthode source ("fileloc") dans beanshell pour inclure d'autres scripts beanshell utilitaires pour les réutiliser. Y at-il une fonction standard pour le faire dans groovy ou une meilleure pratique?Existe-t-il un équivalent groovy à la méthode source beanshell?

Répondre

5

Vous pouvez assembler toutes les parties de vos scripts dans une chaîne, puis avoir un objet GroovyShell pour évaluer votre script. J'ai pris cela à partir des exemples DSL de Venkat Subramanium.

part1 = new File("part1.groovy").text 
part2 = new File("part2.groovy").text 

script = """ 
println "starting execution" 
${part1} 
${part2} 
println "done execution" 
""" 

new GroovyShell().evaluate(script) 
1

La raison pour laquelle vous ne trouvez pas cela est parce que Groovy est compilé. Votre code Groovy est compilé dans le bytecode Java qui est exécuté par la JVM à côté de tout code Java dans votre application. C'est pourquoi des choses comme écrire des tests unitaires Groovified pour de grands corps de code Java ne nécessite aucun effort supplémentaire. Le BeanShell est un langage similaire à Java interprété, de sorte que le slurping dans un autre code obtenu lors de l'exécution n'est pas un gros problème.

Cela dit, vous pourriez être intéressé par groovysh et sa commande load.

Questions connexes