maven3检测插件的maven版本 - 无法激活其他默认配置文件

时间:2012-06-12 16:59:34

标签: maven maven-2 maven-3

我需要检测用户是否在我的父pom中使用mvn2或mvn3才能加载正确的插件版本。我按照这里的建议:http://maven.apache.org/plugins/maven-site-plugin/maven-3.html#Using_maven-site-plugin_2.x_with_Maven_2_and_maven-site-plugin_3.x_with_Maven_3

检测机制效果很好 - 但是,我的其他配置文件被激活后仍然不会被拾取。

超级pom如下图所示:

<profile>
    <id>profile-1</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
</profile>
<profile>
    <id>profile-2</id>
    <activation>
      <activeByDefault>false</activeByDefault>
    </activation>
</profile>
   <profile>
      <id>maven-3</id>
      <activation>
         <file>
         <!--  This employs that the basedir expression is only recognized by Maven 3.x (see MNG-2363) -->
            <exists>${basedir}</exists>
        </file> 
      </activation>     
      <build>
         <pluginManagement>
            <plugins>
               <plugin>
                  <groupId>com.company.plugins</groupId>
                      <artifactId>my-super-plugin</artifactId>
                      <version>1.0-123</version>
                    </plugin>
            </plugins>
         </pluginManagement>
      </build>
   </profile>
 </profiles>

当我运行mvn help:active-profiles with mvn3 - &gt;只列出了maven-3个人资料。如果我使用mvn2,则正确列出profile-1。

* 编辑* :事实证明,它实际上已在此处详细记录:http://maven.apache.org/guides/introduction/introduction-to-profiles.html

  

除非使用上述方法之一激活同一POM中的其他配置文件,否则此配置文件将自动为所有版本激活。默认情况下处于活动状态的所有配置文件在命令行上激活POM中的配置文件或通过其激活配置时自动停用。

我现在的问题是:如果-P profile2被激活,你会建议如何激活profile1,激活profile 2,如果使用maven3,则激活maven-3 profile?

1 个答案:

答案 0 :(得分:0)

到目前为止,我还没有找到比仅仅更好的东西:

<activation>
    <property>
        <name>!dummy</name>
    </property>
</activation>

其中dummy是某种你肯定不会使用的愚蠢变量名。