Java 仅释放更改的组件

Java 仅释放更改的组件,java,maven,release,Java,Maven,Release,我们有一个Java项目,在这个项目中,我们应该只交付已更改的工件,但同时有一个产品,该产品包含未更改组件的最新发布版本和此版本中已更改的组件。 我们使用Maven 3进行构建 让我们看看是否有产品1.1-SNAPSHOT(意味着它正在开发中),其中6个组件有自己的发布版本 现在,如果有如下结构: - c1 - 1.0-SNAPSHOT |- m1 - 2.0-SNAPSHOT |- m2 - 3.0-SNAPSHOT - c2 - 4.0-SNAPSHOT |- m3 - 5.0-S

我们有一个Java项目,在这个项目中,我们应该只交付已更改的工件,但同时有一个产品,该产品包含未更改组件的最新发布版本和此版本中已更改的组件。 我们使用Maven 3进行构建

让我们看看是否有产品1.1-SNAPSHOT(意味着它正在开发中),其中6个组件有自己的发布版本

现在,如果有如下结构:

- c1 - 1.0-SNAPSHOT
  |- m1 - 2.0-SNAPSHOT
  |- m2 - 3.0-SNAPSHOT
- c2 - 4.0-SNAPSHOT
  |- m3 - 5.0-SNAPSHOT
  |- m4 - 6.0-SNAPSHOT
其中c是父组件,m是模块。版本是随机抽取的。可能存在一些依赖关系,比如m4依赖于m2

让我们认为我们已经更新了m2模块,我们想发布它。我们怎么做?是否仅在m2和m4模块上手动启动释放过程?附加什么问题也会出现?我想它应该是整个产品,包含新版本,用于为刚发布的模块添加标签,并为未更新的模块添加源代码版本

下一步我们要做的是创建产品发布包,它将是1.1版本,其中包括m1的最新发布版本(可以是0.99)和m3(可以是4.99),这两个版本可以从产品的1.0版本中获取,因为它们没有更改。此外,m2(将是3.0版)和m4(将是6.0版)的新发布版本应该是1.1包的一部分。如何做到这一点

我看到的唯一解决方案是使用maven版本插件,但在这个过程中需要进行一些黑客开发

我们的想法是尽量减少构建量,并且刚刚发布了修改过的模块

maven可以提供什么来自动实现这一点?Maven发布插件在这个级别上没有帮助。如何发布刚刚更改的组件?我开始想也许我们不需要使用快照来支持这种思想


谢谢。

@Andrew,该应用程序可以是任何罐子的任何集合。我们没有,但是jar文件的用途如何影响整个发布过程呢?如果它有GUI,那么可以使用JWS进行部署。JWS应用程序。支持扩展。扩展可以封装JAR组,并确保这些JAR的最终用户保持最新。因此,您可以拥有“dev”和“production”扩展(以及每个扩展的版本),可以方便地管理版本之间的资源。“但我想在详细讨论之前先检查一下。”安德烈·霍姆普森,谢谢。除了部署阶段和发布管道之外,它可能很有用,但问题在于发布阶段以及如何发布刚刚更新的组件,包括标记和更新版本。