0

私は約 200 個の jar を含む巨大なプロジェクトを持っています。リリースを準備するときにすべての jar を準備しますが、最後のビルド以降に変更されていない jar があることを確認してください。 ? それらを除外しますか?

jar (200 以上) を個別にリリースしたくありません。

例: 親のリリースを作成したいが、変更されていない jar4 をリリースしたくない

-Parent

---------Module1

----------------jar1*

----------------jar2*

---------Module2

----------------jar3*

----------------jar4   
4

1 に答える 1

0

例:親のリリースを作成したいが、変更されていないjar4をリリースしたくない

このための構文は次のとおりです。

mvn -pl Module1,Module2/jar3 <your maven goals here>

(この場合、Module1のすべてとModule2のjar3だけをビルドする必要があります)

ここで注意が必要なのは、パラメーターを-plにアセンブルする方法です。私はそれを行うためのMavenの方法がないと確信しているので、おそらくそれを行うシェルスクリプト(またはRuby、Groovy、PERL pythonなどのスクリプト)を作成する必要があります。

基本的に、スクリプトが実行する必要があること:

  • 指定されたディレクトリですべてのMavenプロジェクトディレクトリ(pom.xmlを含むディレクトリ)を探し、それらを逆に並べ替えます(最も深いパスが最初になります)
  • 階層全体で変更されたすべてのファイルを検索します(svn、cvs、またはその他の呼び出しを使用)
  • 変更された各ファイルをプロジェクトの1つにマップし(パスを比較して)、一致したすべてのプロジェクトをリストに収集します
  • 次に、親/子の最適化を実行してリストを最適化します(特定の親のすべての子が存在する場合は、子を削除して親を追加します)。ルート階層に到達するまで、これを繰り返し実行します。
  • 残りのリストから相対パスを抽出し、それらをコンマで結合し、-plパラメーターにその値を使用してMavenプロセスを開始します。
于 2010-12-29T14:12:52.223 に答える