如何在运行时编译groovy用户输入的脚本

时间:2012-05-17 07:13:53

标签: groovy

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

2 个答案:

答案 0 :(得分:4)

您可以使用GroovyClassLoader:

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

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

或者您可以使用documentation for integrating Groovy中的任何其他方法。

答案 1 :(得分:0)

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

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