40

当社はMavenを使用しています。スナップショットとリリースを保存するために、 Nexusリポジトリ マネージャーを使用します。

現在、Eclipseベースの製品を開発中です。そのためにTychoを使用します。

問題は次のとおりです。Eclipse ベースの製品には多くの機能があります。私たちの考えは、各機能 (または機能のグループ) を個別に構築し、内部の p2 リポジトリに配置することです。ある機能が別の機能を必要とする場合、ターゲット プラットフォームを必要な内部 p2 リポジトリにポイントします。

現在、Tycho でアプリケーションを構築しています。私たちは機能を「展開可能」にするため、Tycho は で P2 サイトを作成しtargetます。その P2 サイトをサーバーにプッシュし、Eclipse を実行しFeaturesAndBundlesPublisherます。これにより、最近ビルドされた機能が P2 リポジトリとマージされます。その結果、必要な機能のすべてのバージョンを含む内部 P2 リポジトリができました。

このプロセスは面倒すぎることがわかりました。Nexus のような便利なツールはありますか?

UPD .: Tycho ユーザー リストに関する議論があります。

4

2 に答える 2

9

Unzip Repository Nexus Pluginを使用すると、Tycho ビルド間でバイナリ アーティファクトを交換するためにNexusを使用できます。

  • Tycho プロジェクト A は、通常の Maven プロジェクトのようにアーティファクトを公開します。プロジェクトは でビルドされ、プロジェクトのアーティファクトを Nexus 上のデプロイMavenリポジトリにmvn clean deployアップロードします。唯一の特別な要件は、プロジェクトがp2リポジトリを構築することです。これを行うための推奨される方法はモジュールですが、ほとんどの場合、「デプロイ可能な機能」も機能するはずです。eclipse-repository

  • Nexus では、次の 1 回限りの構成のみが必要です。 Maven リポジトリ (またはそのリポジトリを含む「リポジトリ グループ」) をデプロイするには、「Unzip リポジトリ」タイプの仮想リポジトリを追加する必要があります。この仮想リポジトリは、デプロイ リポジトリからの zip アーティファクトを展開された形式で表示します。

    例: プロジェクト A の p2 リポジトリ zip が の deploy Maven リポジトリにhttp://nexus.corp/nexus/repositories/build.milestones/corp/example/project-a/project-a-repo/1.0.0/project-a-repo-1.0.0.zipある場合、 の Unzip リポジトリで標準の p2 リポジトリ形式で利用できますhttp://nexus.corp/nexus/repositories/build.milestones.unzip/corp/example/project-a/project-a-repo/1.0.0/project-a-repo-1.0.0.zip-unzip/

  • Tycho プロジェクト B は、後者の URL をターゲット プラットフォーム(ターゲット定義ファイルなど) に追加することで、プロジェクト A のアーティファクトを参照できます。

上記の例では、プロジェクト B はプロジェクト A のリリース バージョンを参照しています。Unzip リポジトリは、最後にデプロイされた 1.1.0-SNAPSHOT のような「シンボリック」バージョンをサポートしているため、スナップショットにも同じアプローチが機能します。最高バージョン。これらのシンボリック バージョンを使用して、プロジェクト B は、たとえば独自の CI ビルドで、結果の (安定した!) p2 リポジトリ URL をターゲット プラットフォームに追加することで、CI ビルド結果のプロジェクト A を参照できます。1.1.0-SNAPSHOTSNAPSHOT

免責事項: Unzip Repository Nexus プラグインは、私がコミッターを務める Tycho プロジェクトの一部です。

于 2012-11-13T17:16:48.583 に答える
3

少し遅いかもしれませんが、私は現在、maven と tycho を使用してリポジトリにデプロイし、P2 リポジトリとして使用するワークフローをサポートするオープン ソース (EPL) リポジトリ マネージャーに取り組んでいます。

Maven (maven tycho ではない) によって作成されたバンドルをデプロイすることも可能で、P2 メタデータが自動的に生成されます。

このプロジェクトは「Package Drone」と呼ばれ、github でホストされています。簡単な紹介動画もあります。

于 2014-12-30T14:20:24.137 に答える