/ / GroovyShell (). Parse parâmetros de passagem - groovy, groovyshell

GroovyShell (). Parse parâmetros de passagem - groovy, groovyshell

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 № 1
  1. parse só analisa o seu arquivo e não o executa
  2. você tem que ligar run também
  3. você precisa instanciar seu arquivo E você precisa chamar seu método e dar o parâmetro
  4. 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()