私は現在、自分のビルド (~30 バンドル) を tycho に任せようとしています。単体テストでMockito
を使用しているときに、いくつかの紛らわしい問題に直面しました。テスト済みのバンドルに as fragment プロジェクト
を作成しました。tycho はマニフェストを使用して必要なバンドルを解決する必要があるため、.mockito への依存関係を.
次に、マニフェストの必要なバンドルにmockitoを追加しようとすると、mockitoがリストされません。この投稿を見つけて、Eclipse indigo を指すターゲット プラットフォームを作成しました。eclipse-test-plugin
pom.xml
プラットフォームの仕様を含めたので、Eclipse デルタ パックは必要ありません。そして、最初の奇妙なことが起こります。Eclipse は、満たされない依存関係がいくつかあり、新しく作成したターゲット プラットフォームを Eclipse 内でアクティブに設定すると、 などのパッケージを Eclipse で解決できないと言っていますorg.osgi.framework
。しかし、eclipse-product
tycho とターゲット プラットフォームを使用してビルドすると、動作します。
現在のEclipseインストールをアクティブなプラットフォームとして設定すると、バンドルが解決されます。indigo リリースの以下を選択しました。
- Eclipse RCP プラグイン開発者リソース
- Equinox ターゲット コンポーネント
- Jetty ターゲット コンポーネント
したがって、私の最初の質問は、「ターゲット プラットフォームのどこが悪いので、tycho は使用できるのに、Eclipse は使用できないのですか?」ということです。
元の問題 (mockito の実行) に近づくために、現在の Eclipse インストールをアクティブなターゲット プラットフォームとして設定しました。その後、Eclipse はorg.osgi.framework
パッケージなどを解決できます。上記の投稿のように
、以前に削除したmockitoへの依存関係を再度追加しました。pom.xml
しかし、マニフェストで必要なバンドルに追加しようとすると、mockito が見つかりません。
私の 2 番目の質問は、「何が間違っているのですか? Eclipse 更新サイト (例: Maven 中央リポジトリ) で公開されていないバンドルをどのように参照しますか?」です。
更新:調査中に、非 p2-update-siteからのバンドルをターゲット プラットフォームに含める 2 つの方法を見つけました。
- Nexus Pro Nexus
のプロフェッショナル バージョンは、Maven セントラル リポジトリのようなデフォルトの Maven リポジトリを p2 更新サイトにラップできる p2-Proxy リポジトリをサポートしていますが、プロフェッショナル バージョンの価格は年間約 800 ドルです。 - eclipse-repositoryを作成する必要なすべてのバンドルを含む
パッケージを使用して、新しい Maven プロジェクトを作成できます。eclipse-repository
作成されたアーティファクトは、共通の Web サーバーにデプロイされます。
ターゲット プラットフォームでは、Nexus p2-proxy リポジトリまたは Web でホストされている p2-リポジトリを参照できます。
他の方法を知っている人はいますか - おそらくより便利/安価ですか?
tychoの紛らわしい世界をもう少し理解するのを手伝ってください...
よろしくお願いします