4

Tycho を使用して Eclipse プラグインを構築しており、OSGi サービスに Declarative Services を利用しています。Eclipse には DS ファイル用の優れたエディターがありますが、それでも手動プロセスであるため、時間がかかり、エラーが発生しやすくなります。

Tycho OSGi 以外のプロジェクトでは、 を使用しmaven-scr-pluginてこれらの注釈を生成できます。Tycho の問題点は、org.apache.felix.annotationsjarへの参照を追加できないことです。

  • p2 リポジトリに存在しない
  • バンドルではありません

これらの注釈は で定義されるRetentionPolicy = CLASSため、バンドルに含める必要はありません。

pom-first artifacts への依存については知っていますが、アノテーション jar はバンドルではないため、うまくいきません。理想的には、コンパイル時に追加の jar を探すように Tycho/Eclipse を構成するだけで済みます。

Tycho と Eclipse で考慮されるコンパイル時のみの jar を取得するにはどうすればよいですか?


更新extraClasspathElements: のオプションを使用しようとしましたtycho-compiler-plugin。これにより、を呼び出すことができます(現在の pom.xmlmaven-scr-pluginを参照してください)。ただし、ビルドが失敗するため、scrプラグインはクラスにアクセスできないようです

[エラー] プロジェクト org.apache.sling.ide.eclipse-core: /mnt/md/ でゴール org.apache.felix:maven-scr-plugin:1.13.0:scr (generate-scr-descriptor) を実行できませんでしたrobert/git/sling-ide-tools/eclipse-core/src/org/apache/sling/ide/eclipse/core/ServerUtil.java : コンパイル済みクラスを読み込めません: org.apache.sling.ide.eclipse.core。 ServerUtil

完全なビルド ログも表示できます

4

2 に答える 2

1

Tycho/Eclipse を使用しているため、おそらく「org.apache.felix.annotations」ではなく「org.eclipse.equinox.ds」を使用することをお勧めします。私の理解が正しければ、org.eclipse.equinox.ds はバンドルです。Tycho FAQ もこれについて言及しています:

http://wiki.eclipse.org/Tycho/FAQ#How_to_add_a_undeclared_dependency.3F__.28e.g..2C_OSGi_declarative_service.29

編集:

http://eclipse.org/tycho/sitedocs/tycho-compiler-plugin/compile-mojo.html#extraClasspathElements

EDIT2: 多くが変更されました。時間が許せば、回答を更新します。それまでの間、コメント スレッドを確認してください =)

于 2013-07-24T14:40:13.347 に答える