добавить модуль расширения в класс 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)

Что я сделал не так?

Ответы на вопрос(1)

Ваш ответ на вопрос