GroovyShell()。解析传递参数

时间:2014-06-11 04:50:41

标签: groovy groovyshell

我有一个groovy脚本,需要从外部groovy脚本解析一个类。我不知道如何传递参数。这是有效的:

我正在运行的Groovy脚本使用此行来解析external.groovy中的外部类:

new GroovyShell().parse(new File('External.groovy'))

这是external.groovy的样子:

class External {
    public external() {
        println "Hello"
    }
}

有效。

我遇到的问题,我找不到将参数传递给外部方法的方法。以下是external.groovy应该是什么样的:

class External {
    public external(String name) {
        println name
    }
}

如何向正在运行的脚本添加参数:

new GroovyShell().parse(new File('external.groovy')) //need to include the 'Name' parameter to this

1 个答案:

答案 0 :(得分:3)

  1. parse仅解析您的文件而不执行它
  2. 您还必须致电run
  3. 您需要实例化您的文件并且您需要调用您的方法并为其提供参数
  4. 您需要通过Binding对象
  5. 提供参数

    这是课程和电话

    class External {
         public external(String name) {
            println name
        }
    }
    new External.external(somename)
    

    然后

    def bindings = new Binding()
    bindings.setVariable("somename", "mrhaki")
    def shell = new GroovyShell(bindings)
    shell.parse(new File('external.groovy'))
    shell.run()