2013-05-27 16 views
5

私はMavenを初めて使用しています。私は新しいプロジェクトを与えられており、それは以下の構造を持っています。maven - 2種類のルートポーム

Data_Res 
    | 
    ---res-search 
    |  | 
    |  -----res-hast 
    |  |  | 
    |  |  ------src/main.... 
    |  |  | 
    |  |  ------pom.xml 
    |  -----res-haster 
    |  |  | 
    |  |  ------src/main.... 
    |  |  | 
    |  |  ------pom.xml 
    |  | 
    |  ----pom.xml 
    | 
    | 
    ---pom.xml 
    ---sonar_pom.xml 

root pom.xmlのモジュールセクションが表示されません。しかし、私はsonar_pom.xmlにモジュールセクションがあります。すべての子ノードは含まれていません。フォルダ/プロジェクトには2つのポムがありますか?または、別々に実行することはできますか?

  1. これをどのように解釈すればよいですか?サブモジュールまたは個々のプロジェクト?見つけ出す指標がありますか?
  2. mvn clean installをroot pomで実行するように指示されました。私はそれをしました。私は、サブフォルダのいずれかのすべての依存関係が提供されているかどうかを確認するよう求められました。これらを確認するには?私はホームディレクトリの.m2フォルダの下にいくつかのファイルを見ることができます。
  3. これはどのようにビルド/パッケージ化しますか?私はサブフォルダの1つに取り組んでいます。別のプロジェクトまたはサブモジュールではありません。その場合、そのフォルダに直接移動してそのフォルダからmvn package/buildを実行できますか(pom.xmlは存在します)?

答えて

9

(e.g mvn install)ゴールを実行すると、mavenはpom.xmlが存在する場合、実行されているフォルダのpom.xmlをチェックします。同じモジュールがある場合は、そのフォルダ(つまりプロジェクト)のゴールを実行します。目標はモジュール上で実行され、この操作は再帰的です。

フォルダ/プロジェクトには2つのポムがありますか?

はい、あなたはプロジェクトのために、複数のPOMSを持つことができますが、あなたはあなたのケース mvn -f sonar_pom.xml clean installに代替ポンポンファイルを言及する -fを使用することができ、代替POMファイルを使用したい場合は、デフォルトでは、probalyそのPOMファイルのpom.xmlですソナーのために使用されます。

これをどのように解釈しますか?サブモジュールまたは個々のプロジェクト? 調べる指標はありますか?

親プロジェクトとすべての依存関係がローカルのMavenレポに存在する場合、すべてのプロジェクトでpom.xmlを独立してビルドすることができます。

root pomでmvn clean installを実行するよう指示されました。私はそれをしました。私は のいずれかのサブフォルダのすべての依存関係が であるかどうかを確認するよう尋ねました。これらを確認するには? 私のホームディレクトリの.m2フォルダの下にいくつかのファイルがあります。

ローカルMavenレポを確認するには、デフォルトは~/.m2/repositoryですが、設定はsettings.xmlで変更できます。 <maven_home>/conf/settings.xml~/.m2/にコピーしてファイルには、グローバル設定を見つけることができます存在しない場合~/.m2/settings.xmlをチェックし、それが上書きされたが<localRepository>/path/to/local/repo</localRepository>

がどのように構築するか、次のタグ/パッケージこれをチェックすることができますか?サブフォルダ のいずれかで作業する予定です。別のプロジェクトまたはサブモジュールではありません。その場合 その場合、直接そのフォルダに移動し、mvnパッケージ/ そのフォルダ(pom.xmlが存在する)からビルドを実行できますか?

前述のとおり、mvn packageは、親とすべての依存関係がある場合、モジュールで実行できます。日食に私が作成する必要がありました:次の2つの方法

  1. ただ、すでに正しい答えに追加するremote repositories
+0

ありがとう、@ Karthikeyan。それは多くの助けになります。 2つのもの。 1.).m2/settings.xmlは表示されません。 2.)私がサブモジュール/プロジェクトからパッケージ化すると、その依存関係に失敗します。サブモジュールからパッケージ化すると、Parentからすべての依存関係が自動的に取り出されますか? –

+0

@KevinRave settings.xmlに関する私の回答を更新しました。依存関係が[Central Repo](http://repo1.maven.org/maven/)に存在しない場合は2番目の質問に対してはダウンロードされません。どの依存関係があなたが開発していない場合にダウンロードされていないかを確認し、そのリポジトリを含むリポジトリを確認し、settings.xml [Settings Ref](http://maven.apache.org/settings.html)で設定します。 –

+0

驚くばかり!ありがとう!ここに何が起こったのですか?私は私に言われたフォルダのmvnパッケージを実行していた。それは、他のフォルダへの依存関係が欠落していました。そこで、私はそのフォルダに入り、mvn installを実行した後、別のフォルダの依存関係を尋ねました。私はそこに入り、mvn installを実行しました。私は各フォルダに入り、mvn installを実行しました。最後に元のフォルダに戻り、mvn installを実行しました。出来た。だから私の推測は根本的なポムは仕事をしていないです。あなたはこれを何と考えていますか?私に言われたように、私はpom.xmlとは対照的にsonar_pom.xmlを実行するべきですか? –

0

を使用してmvn install

  • を使用して、システムでそれらをインストールの組み合わせでこれらを取得することができます"Maven Build"実行コンフィギュレーションの下に新しい "実行コンフィギュレーション"があります。

    と "目標" フィールドを-f pom_deploy.xml -T 1C

    をインストールします。私は標準

    $ {接続がproject_loc}にベースディレクトリを設定しました

    次に、カスタムpom_deploy.xmlを右クリック - >実行コンフィギュレーション - >カスタムMavenデプロイ

    '-T 1C'はオプションで、Mavenにビルド/コンパイルプロセスのために複数のプロセッサを同時に使用するよう指示します。