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 回答
-12

只需在 -P 之后添加一个空格,该命令的语法为

mvn install -P x

不像你正在使用

mvn install -Px

看一看Maven——profiles 简介

于 2015-02-20T04:40:41.057 回答