2008-11-19 3 views
1

Я прочесываю groovy doc и не нашел аналога, но вещи там организованы немного беспорядочно. Я переключаюсь с beanshell на groovy и использовал метод source ("fileloc") в beanshell для inline-include других, скриптов утилиты beanshell для повторного использования. Существует ли стандартная функция, чтобы сделать это в хорошем или лучшем виде?Есть ли существенный эквивалент метода beanshell source()?

ответ

5

Вы можете собрать все части ваших скриптов в строку, а затем объект GroovyShell оценить ваш скрипт. Я выбрал это из примеров DSL от 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

Причина, по которой вы не находите это, заключается в том, что Groovy скомпилирован. Ваш код Groovy скомпилируется в байт-код Java, который запускается JVM прямо рядом с любым Java-кодом в вашем приложении. Вот почему такие вещи, как написание модульных тестов Groovified для больших тел кода Java, требуют дополнительных усилий.

The BeanShell - это Java-подобный язык , который интерпретирует язык, поэтому разрывание в другом полученном коде во время выполнения не имеет большого значения.

Это, возможно, вас заинтересует groovysh и его load.

Смежные вопросы