43

Maven POM.xml に次の XML があります。

<profiles>
  <profile>
     <id>default</id>
     <activation>
        <activeByDefault>true</activeByDefault>
        <property>
           <name>default</name>
           <value>!disabled</value>
        </property>
     </activation>
     <modules>
        <module>m1</module>
        <module>m2</module>
        <module>m3</module>
     </modules>
  </profile>
  <profile>
     <id>x</id>
     <modules>
        <module>m1</module>
     </modules>
  </profile>
</profiles>

私が達成しようとしているのはこれです:

  1. を実行するmvn installと、m1、m2、および m3 プロジェクトをビルドする必要があります。

  2. を実行するmvn install -Pxと、 m1のみをビルドするようにします。

私の現在の問題は、上記のコードでは、オプション 2 がすべての m1、m2、および m3 をビルドすることです。

4

3 に答える 3

61

解決策を見つけて、最初に「x」プロファイルを定義し、「デフォルト」を定義すると、正常に動作します(非常識なMaven !!)。最終結果は次のとおりです。

   <profiles>
      <!-- DO NOT CHANGE THE *ORDER* IN WHICH THESE PROFILES ARE DEFINED! -->
      <profile>
         <id>x</id>
         <modules>
            <module>m1</module>
         </modules>
      </profile>
      <profile>
         <id>default</id>
         <activation>
            <activeByDefault>true</activeByDefault>
         </activation>
         <modules>
            <module>m1</module>
            <module>m2</module>
            <module>m3</module>
         </modules>
      </profile>
   </profiles>
于 2012-11-14T16:36:29.490 に答える
6

runByDefault次のように、コマンド ラインから trueに設定された Maven プロファイルを無効にすることができます。

mvn install -P !default

これには Maven バージョン 2.0.10 が必要です。

于 2012-11-14T14:54:30.897 に答える