Eu tenho um script groovy que precisa analisar uma classe de um script groovy externo. Não tenho certeza de como passar parâmetros. Aqui está o que funciona:
O script Groovy que estou executando está usando esta linha para analisar a classe externa de external.groovy:
new GroovyShell().parse(new File("External.groovy"))
Aqui está o que external.groovy se parece com:
class External {
public external() {
println "Hello"
}
}
Funciona.
O problema que estou tendo, eu não consigo encontrar uma maneira de passar parâmetros para o método externo. Aqui está o que external.groovy deve ser:
class External {
public external(String name) {
println name
}
}
Como adiciono parâmetros ao script em execução:
new GroovyShell().parse(new File("external.groovy")) //need to include the "Name" parameter to this
Respostas:
3 para resposta № 1parse
só analisa o seu arquivo e não o executa- você tem que ligar
run
também - você precisa instanciar seu arquivo E você precisa chamar seu método e dar o parâmetro
- você precisa dar o parâmetro através de um
Binding
objeto
Aqui está a aula e a chamada
class External {
public external(String name) {
println name
}
}
new External.external(somename)
e depois
def bindings = new Binding()
bindings.setVariable("somename", "mrhaki")
def shell = new GroovyShell(bindings)
shell.parse(new File("external.groovy"))
shell.run()