我开发了一些 groovys 用作 Serviio 的插件。这些插件使用的许多方法都很常见,但是当进行更改时,每个插件都需要更新。因此,我想在 tools.groovy 的每个插件中“包含”这些方法。我尝试了其他帖子中建议的 2 种不同方法。
我尝试使用
evaluate(new File("C:\\Program Files\\Serviio\\plugins\\tools.groovy"))
在 tools.groovy 刚刚拥有的每个插件的开头
class Tools{method1{return}method2{return}}
但是在执行插件时我得到
Caught: groovy.lang.MissingMethodException: No signature of method: Tools.main() is applicable for argument types: () values: []
如果我再添加
void main(args) { }
到类工具,错误消失了,但运行的是 Tools.main 而不是 plugin.main,我没有得到任何输出。
我建议的第二种方法是使用
def script = new GroovyScriptEngine( '.' ).with {
loadScriptByName( 'C:\\Program Files\\Serviio\\plugins\\tools.groovy' )
}
this.metaClass.mixin script
然而,这给出了错误
unexpected token: this @ line 55, column 2.
this.metaClass.mixin script
任何有关如何使这些解决方案发挥作用的建议将不胜感激。