jira のイベント リスナー プラグインを作成しようとしています。古い方法 (最新の Atlassian SDK 6.2.9 が行っている) に進み、これらの 2 行を配置すると、
<component key="eventListener" class="jira.plugins.listeners.MyEventListener"/>
<component-import key="eventPublisher" class="com.atlassian.event.api.EventPublisher"/>
プラグインをパッケージ化しようとすると、という警告が表示されI cannot use component/component-import statement inside plugin descriptor file when Atlassian plugin key is set
ます。最新の SDK は、Spring Scanner を使用します。Spring Scanner は、スケルトンの作成中に pom.xml ファイルに自動的に追加され、ドキュメントで強く推奨されています。そこで、これら 2 行を atlassian-plugin.xml ファイルから削除し、対応する注釈に置き換えてみます。
@Component
public class MyEventListener{
@Inject
public MyEventListener(@ComponentImport EventPublisher eventPublisher){
eventPublisher.register(this);
}
}
この方法でコンパイルしてパッケージ化できますが、実行中の Jira インスタンスにインストールすると、プラグインの説明にThis plugin has no modules
. @Component を @Named に変更し、 @ExportAsService をクラスに追加しようとしましたが、すべて役に立ちませんでした。Spring Scanner が私のクラスをコンポーネントとして検出しないようです。誰かがこの問題を克服できましたか? アトラシアン コミュニティに書き込みましたが、これまでのところ何のニュースもありません。