2012-04-25 12 views
3

私は、開発者がMaven座標を与えられたアーティファクトのソースをチェックアウトできるツールを書くつもりです。このツールは、SNAPSHOTのすべての依存関係について、ソースを再帰的にチェックアウトする必要があります。Mavenで座標を指定してアーティファクトソースをチェックアウトするにはどうすればよいですか?

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

  1. パース.m2/settings.xmlのかを決定するアーチファクトのためのPOMをダウンロードし使用するレポ:いない場合は

    、私の自家製ツールは、の行で何かをするだろう。

  2. ダウンロードしたpomからscmタグを使用して一時的なbootstrap-pomを作成します。
  3. チェックアウトソースにscm:bootstrapとbootstrap-pomを使用してください。
  4. [オプションで] SNAPSHOT依存関係のあるポームのソースを検索し、処理を繰り返します。

私の2番目の質問は次のようなものです:これはあなたに行く良い方法のようですか?どんな警告が心に湧きますか?

答えて

1

このようにチェックアウトしたいプロジェクトごとに、scmプラグインのブートストラップ目標のプラグイン設定を含むプロファイルを追加できます。プラグインの設定はscmのURLと同じPOMになるので、#2のハンドル番号& 3;別のブートストラップポームは必要ありません。

初期POMを取得するために、コマンドラインからdependency:getを使用することができます。ダウンロードしたPOMとディレクトリで

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

、ブートストラップを実行します。

チェックアウトでしょう
mvn -Pbootstrap-profile-id scm:bootstrap 

トップレベルプロジェクト。

私はあなたがこの再帰的にする方法を知りません。 dependency:copy-dependenciesを使用して、推移的な依存関係を求め、POMをコピーして、それぞれのブートストラッププロセスを実行することができます。それがどう動くかわからない。

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 
+0

、SCMのURLはタグの代わりに頭に指し示すことができる作品例ですいませんリリースのあなたが望むものであってもなくてもよい。 –

関連する問題