Cependant ce n'est pas forcement immédiat de coupler les deux langages et il faut passer par un chargeur de scripts.
Pour cela il est nécessaire d'inclure la dépendance maven suivant:
1 2 3 4 5 | <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <verion>2.4.12</version> </dependency> |
Une fois la dépendance mise dans notre pom, il va falloir employer la GroovyShell afin de parser le code groovy. Au passage on pourra donner a notre Shell un Binding afin de remplir les variables éventuelles qui seront a donner aux scripts si ces derniers sont des Templates.
Enfin il faut exécuter le script Groovy pour en récupérer le résultat.
Si l'on considere le script groovy suivant contenu dans le fichier monScript.groovy:
println "hello world," + $argument
Bon ok ca fait pas grand chose, mais c'est pour l'exemple. On notera juste ici, l'emploie de $argument qui devra etre remplacer par un binding.
On va alors elaborer un chargeur pour le script, definir le binding, puis l'executer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public static void main(String[] args) { Binding binding = new Binding(); binding.setVariable("$argument", " parceque c'est groovy!"); GroovyShell shell = new GroovyShell(binding); try { // Chargement du script groovy Script s=shell.parse(new File("src/main/scripts/monScript.groovy")); // Exécution du script Object retour = s.run(); // Affichage de la valeur de retour du script if(retour!=null) System.out.println(retour); } catch (CompilationFailedException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } |
Et la console nous donne le résultat d’exécution du script:
hello world, parceque c'est groovy!
Aucun commentaire:
Enregistrer un commentaire