3

Maven 座標を指定してアーティファクトのソースを開発者がチェックアウトできるツールを作成しようとしています。このツールは、必要に応じて、すべての SNAPSHOT 依存関係についてソースを再帰的にチェックアウトできる必要があります。

私の最初の質問は次のとおりです。このツールを作成する必要はありますか? これは非常にユニークなユーザー シナリオではないと想像するかもしれませんが、これを実現するのに適したものをまだ見つけられていません。私は scm:checkout と scm:bootstrap を見てきました。両方とも、artifactID しか持っていないため、接続 URL に関する知識が必要です。これを行うには、カスタムツールを作成する以外に方法はありますか?

そうでない場合、私の自家製ツールは次の行で何かを行います。

  1. .m2/settings.xml を解析して、使用するリポジトリを決定します アーティファクトの pom をダウンロードします。
  2. ダウンロードした pom から scm-tag を使用して、一時的な bootstrap-pom を作成します。
  3. scm:bootstrap と bootstrap-pom を使用してソースをチェックアウトします。
  4. [オプション] SNAPSHOT 依存関係を持つ pom のソースを検索し、プロセスを繰り返します。

私の 2 番目の質問は次のとおりです。注意点はありますか?

4

2 に答える 2

1

この方法でチェックアウトするプロジェクトごとに、scm プラグインのブートストラップ ゴールのプラグイン構成を含むプロファイルを追加できます。プラグイン構成は scm URL と同じ POM にあるため、#2 と 3 が処理されます。個別の bootstrap-pom は必要ありません。

dependency:get初期POMを取得するには、コマンドラインから 次を使用できます:

mvn dependency:get -Dartifact=some.group:my.artifact:version:pom -Ddestination=someDirectory

ダウンロードした POM のあるディレクトリで、ブートストラップを実行します。

mvn -Pbootstrap-profile-id scm:bootstrap

トップレベルのプロジェクトをチェックアウトします。

これを再帰的にする方法がわかりません。dependency:copy-dependencies推移的な依存関係を要求し、POM をコピーしてから、それらのそれぞれに対してブートストラップ プロセスを実行することができる場合があります。それがどのように機能するかわかりません。

于 2012-04-25T16:30:08.913 に答える
0

user944849 の解決策は私にはうまくいきませんが、ここにうまくいく例があります

mvn dependency:get -Dartifact=ar.com.hjg:pngj:2.1.0:pom  -Ddest=pom.xml
mvn scm:bootstrap -Dgoals=validate
mv target/checkout ~/projects/pngj
于 2014-05-28T06:50:07.720 に答える