我看了之前关于这个话题的问题,似乎人们比我现在领先一步。 我目前正在尝试将 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>