Existe uma Groovy equivalente ao método de fonte beanshell ()?
Pergunta
Eu percorri o doc Groovy e não ter encontrado um análogo, mas as coisas não são organizados um pouco ao acaso. Estou mudando de beanshell para Groovy e estava usando o método fonte ( "fileloc") em beanshell para inline-incluem outra, utilidade Beanshell scripts para reutilização. Existe uma função padrão de fazer isso em Groovy ou uma prática recomendada?
Solução
Você pode reunir todas as partes de seus scripts em um String, em seguida, ter um objeto GroovyShell avaliar o seu script. Eu escolhi este acima dos exemplos 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)
Outras dicas
A razão que você não está encontrando isso é porque Groovy é compilado. Seu código Groovy é compilado em bytecode Java que é executado pela JVM direita ao lado qualquer código Java em seu aplicativo. É por isso que coisas como escrever testes de unidade Groovified para grandes massas de código Java requer zero esforço extra.
O BeanShell é um Java-como interpretada língua, para sorver em outro tem de código em tempo de execução não é grande coisa.
Dito isso, você pode estar interessado em groovysh e seu comando load
.