Есть ли классный эквивалент метода beanshell source ()?
Вопрос
Я просмотрел отличный документ и не нашел аналога, но там все организовано немного беспорядочно. Я переключаюсь с beanshell на groovy и использую метод источника (" fileloc ") в beanshell, чтобы inline-включить другие, служебные сценарии beanshell для повторного использования. Есть ли стандартная функция, чтобы сделать это в Groovy или лучшие практики?
Решение
Вы можете собрать все части ваших сценариев в строку, а затем использовать объект 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)
Другие советы
Причина, по которой вы этого не находите, в том, что Groovy компилируется. Ваш Groovy-код компилируется в байт-код Java, который запускается JVM вместе с любым Java-кодом в вашем приложении. Вот почему такие вещи, как написание Groovified модульных тестов для больших тел Java-кода, не требуют дополнительных усилий.
BeanShell - это Java-подобный интерпретируемый язык, так что слежка за другим полученным кодом во время выполнения не составляет большого труда.
Тем не менее, вас может заинтересовать groovysh и его загрузить
команду.