【问题标题】:How do I default sub-module versions in a Maven multi-module project using snapshots?如何使用快照在 Maven 多模块项目中默认子模块版本?
【发布时间】:2014-01-17 13:35:16
【问题描述】:

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

【问题讨论】:

  • 我希望你的父母包含&lt;modules&gt;&lt;module&gt;divarmiclient&lt;/module&gt;/&lt;modules&gt; ?
  • 是的,还有其他所有模块。
  • 如果这样我会假设其他地方有问题,但如果没有整个 pom 文件我无法猜测...

标签: maven pom.xml snapshot maven-release-plugin parent-pom


【解决方案1】:

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

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>

【讨论】:

  • 非常感谢。这就是我需要知道的!
猜你喜欢
  • 2011-08-09
  • 1970-01-01
  • 2013-04-04
  • 2021-02-25
  • 2011-05-01
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多