Domanda

Ho setacciato il docile doc e non ho trovato un analogo, ma le cose sono organizzate un po 'a casaccio. Sto passando da beanshell a groovy e stavo usando il metodo source ("fileloc") in beanshell per includere in-line altri script di utilità beanshell da riutilizzare. Esiste una funzione standard per farlo in groovy o una buona pratica?

È stato utile?

Soluzione

È possibile assemblare tutte le parti degli script in una stringa, quindi fare in modo che un oggetto GroovyShell valuti lo script. L'ho preso dagli esempi DSL di 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)

Altri suggerimenti

Il motivo per cui non lo trovi è perché Groovy è compilato. Il codice Groovy viene compilato nel bytecode Java che viene eseguito dalla JVM accanto a qualsiasi codice Java nella tua app. Questo è il motivo per cui cose come scrivere test di unità Groovified per grandi corpi di codice Java richiedono uno sforzo extra zero.

BeanShell è un linguaggio interpretato simile a Java, quindi bere un altro codice in fase di esecuzione non è un grosso problema.

Detto questo, potresti essere interessato a groovysh e al suo comando .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top