我想编译并执行用户在运行时键入(在DSL中)的一段Groovy。在Groovy中这可能吗?如果是这样,最好的方法是什么?
答案 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