2011-01-25 9 views
2

私はサブPOM(アプリケーションサーバーモジュールの展開ロケーション)によって定義あるプロパティを使用して私のベースPOMにプロファイルを定義しました。プロフィールは最初のフルビルド後に使用され、したがってすべてのサブポームに継承されるものとします。プロパティはいつ解決されますか?

問題は:どのようにこのようなプロパティが解決されたのですか?最初のフルビルドを行うとき、または特定のサブモジュールのローカルビルドを実行するときですか?

<profile> 
    <id>quickdeploy</id> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <configuration> 
      <outputDirectory>${ear.path}</outputDirectory> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</profile> 

${ear.path}

答えて

0

は、私はちょうどあなたの質問m2eclipseで作成した2つの成果物を試してみた...サブモジュールで定義されています。最初のものはq4794952.baseで、単純なmavenプロジェクトで、そのタイプはpomに設定されています。次に、ベースアーチファクト内に親タグと(サブ)モジュールを自動的に作成する2番目のアーティファクトを作成しました(基本プロジェクトを右クリックし、New => Maven => Mavenモジュール)。

上記のプロセスで作成されたようなモジュール構造(またはモジュールがタグで認識されるジェネラル)を使用する場合、サブモジュールのプロパティは "ベース"に認識され、 "フルビルド"(help:effective-pomとビルドの結果を見て分かるように)。サブモジュールだけをビルドすると、プロファイルは親のpomから取得され、プロパティは(サブ)モジュールで設定されるため、解決されます。

ここに私の "basepom" です:

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.stackoverflow</groupId> 
    <artifactId>q4794952.base</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <profiles> 
    <profile> 
    <id>quickdeploy</id> 
    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
      <outputDirectory>${ear.path}</outputDirectory> 
      </configuration> 
     </plugin> 
     </plugins> 
    </build> 
    </profile> 
    </profiles> 
    <modules> 
    <module>q4794952.sub</module> 
    </modules> 
</project> 
関連する問題