adicionar módulo de extensão à classe groovy
Estou tentando criar simplesextension module
.
eu crieiMain.groovy
Arquivo
class Item {
String item
}
new Item().sayHello() // this method supposed to be extension
Eu o compilei (não corri).
eu crieiItemExtension.groovy
classe
class ItemExtension {
def sayHello(Item self) {
println "hello world"
}
}
Este é meuorg.codehaus.groovy.runtime.ExtensionModule
descritor
moduleName=Item extension module
moduleVersion=1.0
extensionClasses=ItemExtension
Eu compileiItemExtension.groovy
usandogroovyc
(Eu pré-compileiMain.groovy
a fim de obterItem
classe)
groovyc ItemExtension.groovy
CompiladoItemExtension.class
comMETA-INF
Eu coloquei.jar
arquivo (renomeado.rar
) Sua estrutura se parece com isso
META-INF\services\org.codehaus.groovy.runtime.ExtensionModule
ItemExtension.class
Eu colocoItemExtension.jar
na mesma pasta queMain.groovy
e compilou novamente, mas comcp
argumento para adicionarjar
.
groovyc -cp ItemExtension.jar Main.groovy
Mas quando eu tento rodar
groovy Main
Eu recebo essa exceção
Caught: groovy.lang.MissingMethodException: No signature of method: Item.sayHell
o() is applicable for argument types: () values: []
groovy.lang.MissingMethodException: No signature of method: Item.sayHello() is a
pplicable for argument types: () values: []
at Main.run(Main.groovy:6)
O que eu fiz de errado?