【问题标题】:Release maven project removing automatically SNAPSHOT dependencies发布 maven 项目,自动删除 SNAPSHOT 依赖项
【发布时间】:2012-06-02 14:36:23
【问题描述】:

我想使用 maven 发布插件制作我的多模块 maven 项目的第一个版本。我在 release:prepare 步骤中遇到了一个问题,因为我有 SNAPSHOT 依赖项。

<project ...> 

   <parent>
      <artifactId>project</artifactId>
      <groupId>ccc.aaa.bbb</groupId>
      <version>0.0.1-SNAPSHOT</version>
   </parent>

  <artifactId>common</artifactId>
  <packaging>pom</packaging>
  <name>common</name>

  <modules>
     <module>daoModule</module>
     <module>configModule</module>
     <module>exceptionModule</module>
  </modules>

   <scm>
     ...    
   </scm>
   <distributionManagement>
       <repository>...</repository>
       <snapshotRepository>...</snapshotRepository>
   </distributionManagement>
</project>

并且模块将其扩展为它的父级:

<project ...>
<parent>
   <artifactId>common</artifactId>
   <groupId>ccc.aaa.bbb</groupId>
   <version>0.0.1-SNAPSHOT</version>
</parent>

<artifactId>exceptionModule</artifactId>
  <name>exceptionModule</name>

<build>
        ...

插件将工件 0.0.1-SNAPSHOT 的版本更改为发布版本 0.0.1 ,并创建新的快照版本 id 0.0.2-SNAPSHOT。

¿有什么方法可以自动将 父母版本从 0.0.1-SNAPSHOT 更改为 0.0.1 - 即将创建的版本 - 吗?

谢谢。

【问题讨论】:

    标签: maven snapshot maven-release-plugin


    【解决方案1】:

    从包含您感兴趣的所有模块的聚合器项目级别执行release:prepare 时应该可以工作。所以您的commonproject 工件和所有模块应该立即发布。另请查看autoVersionSubmodules 开关以减少打字。

    【讨论】:

    • 当从聚合器项目中执行 release:prepare 时失败,因为 release:prepare 的第二步检查没有 SNAPSHOT 依赖项 link 。如果在创建工件时没有继承父级的版本属性,我将检查 autoVersionSubmodules。谢谢
    • 是的,我知道,但是这些SNAPSHOT 依赖于构建反应器内部的模块继承应该更聪明一点。为我工作了几年。我的大部分项目都是多模块的,我通常以这种方式发布它们。一个要求:所有这些项目必须在同一个构建反应器中一次构建!
    • 你说得对,我的问题是我没有将所有项目都放在同一个反应器中,因为我想避免内存问题。我已经在同一个反应器中进行了一些测试,并且该插件运行良好。我会尝试找到一些手动解决方法...感谢您的帮助!
    • 你好,我想知道是否有可能告诉 maven-release-plugin 所有涉及的模块以便在同一个反应器中进行发布但不改变 pom,也许使用 Build Helper Maven 插件?
    猜你喜欢
    • 1970-01-01
    • 2010-09-19
    • 2016-09-30
    • 2020-06-07
    • 2014-05-03
    • 2012-11-10
    • 1970-01-01
    • 2015-12-08
    相关资源
    最近更新 更多