2011-06-22 8 views
3

私のジェンキンスビルドの1つにかなり複雑なビルドワークフローがあります。プロジェクトには2つのモジュールが含まれています。モジュールM1はサービスを構築し、モジュールM2はサービスクライアントを構築する。 M1はM2に依存しています(なぜ私に質問しないでください)。 M2は、M1のejbから作成されたスタブを必要とします。私たちは循環的な依存関係にあり、ビルドオーダーに従うことで回避しようとしました。ビルドを再実行せずにビルド成果物をインストールする

  1. MVNクリーン(プロジェクト全体のために)をインストール
  2. MVNパッケージ-PCI(すべての依存関係税込を収集するためのプロファイルとM2のため。M1ジャー)
  3. コピースタブを作成するための別のマシンへの成果物との依存関係を構築します
  4. はスタブが
  5. 上書きM2スタブが含まれているバージョンで、アーティファクトを構築作成
  6. MVNインストール:
(M2用)をインストールします

と最終的にそれをインストール爆弾を実行する:

[INFO] [インストール:インストール{実行:デフォルト-CLI}]
[INFO] ------------- -------------------------------------------------- ---------
[エラー] BUILD ERROR
[INFO] ----------------------------- -------------------------------------------
[INFO]パッケージこのプロジェクトのビルド成果物にファイルを割り当てませんでした
[INFO] --------------------------------- ---------------------------------------

私はすでにJenkinsを使用していて、スナップショットディレクトリに展開しているので、私は心配する必要はなく、新しいバージョンをスナップショットから取得するので、ローカル展開を省略できるというアイデアを思いつきました。とにかくレポ。結果は、Jenkinsがインストールを実行した後のジョブの成果物をアーカイブしていたことです。私は最終的なインストールを実行しなかったので、スタブのないバージョンが展開されました(私が信じるステップ2から)。

次に、maven統合の自動アーカイブ機能に加えて、ポストビルドオプションを使用してサービスクライアントjarを明示的にアーカイブするようにJenkinsジョブを設定しました。その結果、私はJenkinsの仕事のためにサービスクライアントジャーをアーカイブしました。 1つはプロジェクトレベル(スタブ付きの希望バージョン)で、もう1つはM2(スタブなし)です。もちろんスタブのないバージョンも展開されました。

プロジェクトの構造を変更することなく、このジレンマからどのように抜け出すことができますか。開発者の欲望がまだ満たされている限り、pomファイルに追加することができます。 Jenkinsの仕事は私のドメインです。

答えて

0

再編成が必要なようです。クライアントのserver-> client依存関係を別のjarファイルにまとめて、この新しいjarファイルへの依存関係をクライアントに変更することは可能ですか?

+0

再編成はあまり役に立ちません。問題は、スタブを作成する方法をmavenに伝えたくないため、Jenkinsがスタブの作成を行う必要があることです。それが見えるように、Jenkinsはスタブが作成される前にスタブをアーカイブします。ステップ1はビルドの主なステップです。 –

関連する問題