如何使用快照在 Maven 多模块项目中默认子模块版本?



我看了之前关于这个话题的问题,似乎人们比我现在领先一步。 我目前正在尝试将 maven 发布插件用于我的多模块项目。我从头开始(更准确地说,我检索了一些旧项目以放入一个新的多模块项目)。

我有一个 POM 父级,我将其定义为:

<groupId>com.somestuff</groupId>
<artifactId>stuff</artifactId>
<version>10.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name> stuff </name>

我的子模块使用以下方法继承父模块:

<parent>
<groupId>com.somestuff</groupId>
<artifactId>stuff</artifactId>
<version>10.0.0-SNAPSHOT</version>
</parent>

因此,由于它是一个新项目,因此我将模块之间的依赖关系指定为快照。例如,如果模块 A 依赖于模块 B,我会将部分添加到 A 的 POM 中:

<dependencies>
<dependency>
<groupId>com.somestuff</groupId>
<artifactId>divarmiclient</artifactId>
<version>10.0.0-SNAPSHOT </version>
</dependency>
</dependencies>

结果是当我尝试做一个"mvn release:prepare"时,Maven 会大喊有快照依赖项。但是由于这是一个全新的项目,并且不存在 10 之前的版本,我不知道如何默认模块的版本值。 我的问题是,我应该如何默认模块值?我该怎么做才能使我的多模块项目从快照角度被接受?

为了澄清起见,你说你的结构是:

theparent
pom.xml
A/
pom.xml
B/
pom.xml

以下假设都成立:

  • 父级、A 和 B 当前在同一版本上
  • 版本
  • 将始终从"父"级别启动,因此它们保持在同一版本
  • A 依赖于 B,始终相同的版本

那么解决方案如下:

<dependency>
<groupId>com.somestuff</groupId>
<artifactId>B</artifactId>
<version>${project.version}</version>
</dependency>

相关内容

  • 没有找到相关文章

最新更新