1

Eclipse プラグインを作成しましたが、その機能をサポートするために必要なネイティブ バイナリがあります。Win および Mac 用のネイティブ コードを用意しました。ネイティブ コードの呼び出しはプラットフォームごとに異なるため、ネイティブ コードに関連する一部のプラグイン コードもあります。(実際、ネイティブ コードは JNA コードなので、非常に異なっています。) 現在、私は拡張ポイントを持っており、各ネイティブ サポート プラグインはそこに貢献しています。したがって、ネイティブ サポートが提供されるとすぐに、メインのプラグインが機能します。また、機能を単体テストするための各ネイティブ サポート プラグインのテスト フラグメントもあります。

  1. 更新サイトまたは p2 リポジトリからダウンロードするときに誰もが適切なプラグインを取得できるように、プラグインをどのように設定すればよいですか? (たとえば、SWT はネイティブ コードにフラグメントを使用していることに気付きましたが、これでよいのでしょうか?)

編集:答えで示されているようにプラグインをフラグメントに変換した後、これらのプラグインの単体テストフラグメントをどうすればよいですか? フラグメントのフラグメントは使用できません。

  1. Tycho ビルドが現在のプラットフォームに適したテストを実行し、他のプラットフォームを無視するように、Tycho でこれを設定するにはどうすればよいですか。

編集:私はMacとWindowsのネイティブコード、2つのフラグメント、したがってpomに2つの環境を持っています。しかしその後、Tycho は「フィルターが適用されないため、プラグイン x をこの環境にインストールすることはできません」と文句を言います。Tycho はこれ自体を理解できますか、それとも OS 依存の Maven プロファイルが必要ですか?

4

1 に答える 1

1

はい、ネイティブ バンドルをプラグイン フラグメントにパッケージ化する必要があります。プラットフォームごとに 1 つのフラグメントのみが有効になるように、各フラグメントでプラットフォーム フィルタを指定する必要があります。たとえば、Windows 64 ビットでは、os=win32、ws=win32 arch=x86_64 を指定する必要があります。

フラグメントが機能の一部である場合は、機能定義でプラットフォーム フィルターも指定する必要があります。

Tycho の下では、pom ファイルのターゲット プラットフォーム構成の環境セクションで、サポートされているすべてのプラットフォーム フィルターの組み合わせを指定する必要があります。

Tycho は常に現在のプラットフォームでテストを実行します。フラグメントをテスト ランタイムに追加します。依存関係を tycho テスト ランタイムに追加する方法については、こちらを参照してください。Tycho は、テスト ランタイムに追加するフラグメントを特定する際に助けを必要とすることがよくあります。

于 2012-12-26T10:18:48.087 に答える