добавить модуль расширения в класс Groovy
Я пытаюсь создать простойextension module
.
я создалMain.groovy
файл
class Item {
String item
}
new Item().sayHello() // this method supposed to be extension
Я это скомпилировал (не запускал).
я создалItemExtension.groovy
учебный класс
class ItemExtension {
def sayHello(Item self) {
println "hello world"
}
}
Это моеorg.codehaus.groovy.runtime.ExtensionModule
дескриптор
moduleName=Item extension module
moduleVersion=1.0
extensionClasses=ItemExtension
Я скомпилировалItemExtension.groovy
с помощьюgroovyc
(Я предварительно скомпилировалMain.groovy
чтобы получитьItem
учебный класс)
groovyc ItemExtension.groovy
скомпилированныйItemExtension.class
сMETA-INF
Я положил в.jar
файл (переименован.rar
). Его структура выглядит так
META-INF\services\org.codehaus.groovy.runtime.ExtensionModule
ItemExtension.class
я кладуItemExtension.jar
в той же папке, что иMain.groovy
и скомпилировал его снова, но сcp
аргумент, чтобы добавитьjar
.
groovyc -cp ItemExtension.jar Main.groovy
Но когда я пытаюсь запустить его
groovy Main
Я получаю это исключение
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)
Что я сделал не так?