0

我有一个带有 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>

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

太感谢了!

4

3 回答 3

2

I'd try to replace the version property 2.0.1 in the second project with a Maven property (e.g. my-artifact.version), which defaults to 2.0.1. On the command line you can build this project and override the introduced property with the snapshot version of my-artifact:

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

This is how the second project should look like:

<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>
于 2013-09-10T07:43:34.443 回答
0

听起来这个工件 my-artifact 之前已经发布过,所以版本控制中应该有一个标签。最简单的方法是检查该状态并对其进行简单的 mvn install 。

感谢@khmarbaise 的评论!您让我知道如何获取具有正确内容的 2.0.1 版本的工件

于 2013-09-15T18:31:37.833 回答
0

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

这是我知道自动更改一组 pom 版本的唯一方法

于 2013-09-09T15:59:16.727 回答