使用配置文件来控制构建哪些Maven模块

时间:2012-11-14 14:52:36

标签: maven profiles

我在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。

  3. 我目前的问题是,使用上面的代码,选项2构建所有m1,m2和m3。

3 个答案:

答案 0 :(得分:43)

找到解决方案的人,首先定义'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>

答案 1 :(得分:5)

您可以从命令行禁用将runByDefault设置为true的maven配置文件,如下所示:

mvn install -P !default

注意,这需要Maven版本2.0.10。

答案 2 :(得分:-8)

在-P之后添加一个空格命令的语法是

mvn install -P x

并不像你正在使用

mvn install -Px

查看Maven - Introduction to profiles