【问题标题】:How do I invoke two different profiles in one maven command?如何在一个 Maven 命令中调用两个不同的配置文件?
【发布时间】:2013-05-23 10:49:13
【问题描述】:

我在pom.xml 中有两个不同环境的配置文件,我必须运行mvn -PTest1 installmvn -PTest2 install 命令才能使用这些配置文件。我们可以将两个单独的 maven 命令集成到一个命令中(例如 mvn clean install)吗?

这是我的 Pom 条目

<profiles>
  <profile>
  <id>Test1</id>
  <activation>
    <activeByDefault>true</activeByDefault>
    <jdk>1.5</jdk>
    <os>
       <name>Windows XP</name>
       <family>Windows</family>
       <arch>x86</arch>
       <version>5.1.2600</version>
    </os>
    <property>
       <name>sparrow-type</name>
       <value>African</value>
    </property>
  </activation>
  <dependencies>
    <dependency>
      <groupId>
      com.endeca
      </groupId>
      <artifactId>
      endeca_navigation_Test1
      </artifactId>
     <version>
     6.1
     </version>
     <!--<version>stable</version> -->
    <scope>
    compile
    </scope>
  </dependency>
  </profile>

  <profile>
    <id>Test2</id>
    <activation>
      <activeByDefault>false</activeByDefault>
      <jdk>1.5</jdk>
      <os>
        <name>Windows XP</name>
        <family>Windows</family>
        <arch>x86</arch>
        <version>5.1.2600</version>
      </os>
      <property>
        <name>sparrow-type</name>
        <value>African</value>
      </property>
    </activation>
    <dependencies>
      <dependency>
        <groupId>
        com.endeca
        </groupId>
        <artifactId>
        endeca_navigation_Test2
        </artifactId>
        <version>
        6.1
        </version>
        <!--<version>stable</version> -->
        <scope>
        compile
        </scope>
      </dependency>
    </dependencies>
  </profile>
</profiles>

使用单个命令管理 hudson 作业会很有帮助

【问题讨论】:

  • 所以你想组合命令mvn -PTest1 installmvn -PTest2 install
  • 我需要将这两个命令 mvn -PTest1 install 和 mvn -PTest2 install 与我的 Hudson 作业命令 mvn install 集成。 mvn install 正在处理我们项目的 Hudson 作业。

标签: java maven maven-profiles


【解决方案1】:

根据documentation 和讨论here,尝试用逗号分隔配置文件名称:

mvn install -P Test1,Test2

【讨论】:

  • 讨论链接已失效???
【解决方案2】:

Mifeet's answer 是正确的,但在 Windows PowerShell 中你应该引用参数,否则你会得到“未知生命周期阶段”的错误。

mvn install -P 'Test1,Test2'

【讨论】:

  • 对我来说是 " " ,我正在使用 cmd
【解决方案3】:

对我来说,Mifeet 的回答不起作用。我得到“未知的生命周期阶段 Test2”。对我来说这是有效的:

mvn install -PTest1 -PTest2

【讨论】:

  • 您在使用 PowerShell 吗?请参阅 naXa 的回答。
【解决方案4】:

基于maven帮助命令

 -P,--activate-profiles <arg>   Comma-delimited list of profiles to activate

所以你可以运行mvn package -Pp1,p2 来运行带有 p1 和 p2 的配置文件 id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2016-07-18
    • 1970-01-01
    • 2013-12-19
    • 2016-12-12
    相关资源
    最近更新 更多