Есть ли классный эквивалент метода beanshell source ()? - PullRequest
1 голос
/ 19 ноября 2008

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

Ответы [ 2 ]

5 голосов
/ 20 ноября 2008

Вы можете собрать все части ваших сценариев в строку, а затем заставить объект 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 голос
/ 19 ноября 2008

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

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

Тем не менее, вас может заинтересовать groovysh и его команда load.

...