2

我想编译并执行用户在运行时(在 DSL 中)输入的一段 Groovy。这在 Groovy 中可行吗?如果是这样,最好的方法是什么?

4

2 回答 2

4

您可以使用 GroovyClassLoader:

def userScript = '''
  (1..5).each {
    println 'X' * it
  }
'''

Class c = new GroovyClassLoader().parseClass( userScript )
c.newInstance().run()

或者,您可以使用文档中的任何其他方法来集成 Groovy

于 2012-05-17T08:01:07.533 回答
0

您可能想在 groovy 中使用绑定的概念,它可以帮助您从外部注入变量并处理它们。

http://mrhaki.blogspot.in/2010/08/groovy-goodness-store-closures-in.html

于 2012-05-17T09:43:26.283 回答