1

我查看了有关该主题的先前问题,似乎人们比我现在的位置领先一步。我目前正在尝试将 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 之前的版本不存在,我不知道如何默认模块的版本值。我的问题是,我该如何默认模块值?我该如何做才能让我的多模块项目从快照的角度来看是可以接受的?

4

1 回答 1

7

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

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

以下假设都成立:

  • theparent、A 和 B 当前处于同一版本
  • 版本将始终从“父级”级别开始,因此它们保持在同一版本上
  • A 依赖于 B,总是相同的版本

那么解决方法如下:

<dependency>
    <groupId>com.somestuff</groupId>
    <artifactId>B</artifactId>
 <version>${project.version}</version>
</dependency>
于 2014-01-24T07:56:40.390 回答