有没有办法在运行mvn clean install时覆盖版本?

时间:2013-09-09 14:05:48

标签: maven maven-3

我有一个带有pom文件的maven项目如下:

<groupId>my.group.id</groupId>
<artifactId>my-artifact</artifactId>
<version>2.0.2-SNAPSHOT</version>

此项目由另一个项目使用,但版本较低<version>2.0.1</version>

<dependencies>
    <!-- other -->
    <dependency>
        <groupId>my.group.id</groupId>
        <artifactId>my-artifact</artifactId>
        <version>2.0.1</version>
    </dependency>
</dependencies>

我不想将第一个pom中的version更改为2.0.1,所以我想知道是否有任何方法可以覆盖第一个项目下运行mvn clean install的版本?< / p>

非常感谢你!

3 个答案:

答案 0 :(得分:1)

我尝试使用Maven属性(例如2.0.1)替换第二个项目中的版本属性my-artifact.version,默认为2.0.1。在命令行上,您可以构建此项目并使用快照版本my-artifact覆盖引入的属性:

cd other-project
mvn clean install -Dmy-artifact.version=2.0.2-SNAPSHOT

这是第二个项目的样子:

<project>
  ...
  <properties>
    <my-artifact.version>2.0.1</my-arfifact.version>
    ...
  </properties>
  ...
  <dependendies>
    <dependency>
      <groupId>my.group.id</groupId>
      <artifactId>my-artifact</artifactId>
      <version><${my-artifact.version}</version>
    </dependency>
    ...
  </dependencies>
  ...
</project>

答案 1 :(得分:0)

也许这可能会有所帮助:http://maven.apache.org/maven-release/maven-release-plugin/update-versions-mojo.html

这是我知道自动更改一组poms

版本的唯一方法

答案 2 :(得分:0)

  

听起来这个神器my-artifact之前已经发布过,因此版本控制中应该存在一个标记。最简单的方法是检查该状态并在其上执行简单的mvn安装。

感谢@khmarbaise的评论!您告诉我如何使用版本2.0.1的正确内容获取工件