【问题标题】:Maven command line argument vs pom propertyMaven 命令行参数与 pom 属性
【发布时间】:2015-03-03 09:11:34
【问题描述】:

我在我的 pom.xml 中定义了一个属性。我也可以将其定义为命令行参数。如果我这样做,我的属性是否会被覆盖或者 pom 中的共轭 OR 属性具有更高的优先级并且命令行参数无效?

提前致谢。

【问题讨论】:

    标签: maven properties command-line-arguments pom.xml


    【解决方案1】:

    如果您使用命令行参数运行它,它将覆盖 pom.xml 中的属性值。

    例如,如果我的 pom 中有依赖项:

      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>${mockito.version}</version>
        <scope>test</scope>
      </dependency>
    

    ...

     <properties>
        <mockito.version>1.9.5</mockito.version>
     </properties>
    

    然后,如果我运行命令:

    mvn clean install -Dmockito.version=1111
    

    maven 将搜索版本 1111(当然不存在)。正如你所说 - 命令行具有更高的优先级

    【讨论】: