1

Serviio でプラグインとして使用される groovy をいくつか開発しました。これらのプラグインで使用される方法の多くは一般的ですが、変更が加えられると、各プラグインを更新する必要があります。したがって、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 をクラス化すると、エラーはなくなりますが、plugin.main の代わりに Tools.main が実行され、出力が得られません。

提案された私の2番目のアプローチは、使用することでした

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

これらのソリューションのいずれかを機能させる方法についての提案をいただければ幸いです。

4

1 に答える 1