9

私は、maven deploy コマンドがライフサイクル全体を通して実行されることを知っています。私の問題は、私の場合は時間がかかることです。説明させてください:

  • サーバーから構築されたアプリケーションと、単一ソースの Eclipse RAP&RCPクライアントがあります。
  • 通信は、サーバーと共に構築される共有 API プロジェクトによって定義されますが、GUI プロジェクトでも必要です。
  • GUIプロジェクトはTychoによってビルドされているため、1 つのビルドで両方をビルドすることは不可能です (1 つのリアクターで、編集: RCP と RAP では P2 アーティファクトが異なるため)。
  • マルチステップの Jenkins ビルドでリリースをビルドします。すべてが問題ないことを確認するために、最初にサーバーと GUI のバリエーションを 1 つずつクリーン インストールし、問題がなければ展開します。

質問

すべてを 2 回ビルドすると、多くの時間がかかります。「ライフサイクル全体をスキップして、ビルドされたすべてのアーティファクトをローカルリポジトリからPOM定義リポジトリにそのままデプロイしてください」のようなものはありますか?

4

2 に答える 2

6

以前のビルドですでにアーティファクトが存在する場合は、サードパーティのJARをリモートリポジトリにデプロイするためのガイドに従って、deploy:deploy-fileを検討できます。私は常にこの目標を使用して、他のチームがテスト/使用できるように、開発者のパブリックリモートリポジトリに安定したアーティファクトを公開しています。

これがお役に立てば幸いです。

于 2013-03-08T00:46:05.230 に答える
2

これに対する純粋な Maven ソリューションはないと思います。問題は、デプロイのみのビルドがデプロイするアーティファクトを認識できないことです。知る限り、この情報はメモリ内の Maven モデルにのみ存在し、ターゲット フォルダーには保持されません。

この問題は、(商用) Nexus Pro のようなステージングをサポートする Maven リポジトリ マネージャーで解決できます。次に、ビルドはすぐにステージング リポジトリにデプロイされ、すべてが成功した場合にのみ成果物を (メイン) リポジトリに昇格させます。

于 2013-03-08T08:04:26.787 に答える