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

maven3检测插件的maven版本-无法激活其他默认配置文件,maven,maven-2,maven-3,Maven,Maven 2,Maven 3,我需要检测用户是否在我的父pom中使用mvn2或mvn3,以便加载正确的插件版本。我遵循了这里的建议: 检测机制工作得很好-但是,我的其他配置文件被defaul激活,不再被拾取 超级pom如下所示: <profile> <id>profile-1</id> <activation> <activeByDefault>true</activeByDefault> </activatio

我需要检测用户是否在我的父pom中使用mvn2或mvn3,以便加载正确的插件版本。我遵循了这里的建议:

检测机制工作得很好-但是,我的其他配置文件被defaul激活,不再被拾取

超级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>

概要-1

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


现在我的问题是:如果使用maven3,您会建议默认激活profile1,如果使用-p profile2,则激活profile2,而如果使用maven3,则激活maven-3 profile,您会推荐什么解决方法?

到目前为止,我还没有找到比以下方法更好的方法:


!笨蛋

其中,
dummy
是一种愚蠢的变量名,您不能确定使用。

好吧-这对我的原始请求有效-我更新了原始注释以完全描述我的环境。我需要:profile1默认情况下,profile2如果指定,maven-3会自动拾取…所以我不再理解你了。您能否再次描述一下这些场景以及哪些配置文件处于活动状态?我有两个部署配置文件:通过http部署和通过ssh部署。默认情况下,通过http部署应该是活动的。在这两个配置文件之上,我有一个maven-3配置文件,当使用maven-3时,它应该被激活。这有意义吗?是的,我想我明白了。但是我帮不了你,我真的不确定你是否可以用简单的配置文件来处理Maven。当然,可以使用一些属性来激活SSH部署,实际上您可以使用这个属性来启用/禁用适当的配置文件,但是如果有人不知道它并使用配置文件(使用
-P
开关),那么所有这些技巧都会停止工作。