具有小型,非常频繁版本的maven项目的版本控制

Rob*_*anu 6 versioning maven-2 release-management

我正在将一个蚂蚁项目转换为一个蚂蚁项目.这个项目与我经常转换的项目不同,因为它经常发布,通常每天8-10次.

通过发布,我的意思是生成的罐子被包装并包含在生产环境中.这个项目是一个叶子,所以它不发布API,只消耗它.它最多也是两个其他项目的运行时依赖项.

我想要一个版本控制方案,其中:

  • 它很容易部署而不强迫开发人员考虑分配给项目的版本号,因为这个数字毫无意义;
  • 很容易将此项目的最新版本作为依赖项包含在内,而不会不断增加依赖项版本;

很可能依赖版本不会是-SNAPSHOT,因为这会与maven-release-plugin我们用于其他项目的冲突,但我愿意接受建议.

Pas*_*ent 5

实际上,您可以使用x-SNAPSHOT版本并仍然使用maven-release-plugin.只需使用mvn release:prepare之前mvn release:perform准备您的版本并将poms中的版本更改x-SNAPSHOT为新版本(系统将提示您输入要使用的版本).你可以看看这个介绍给行家释放小插件的快速概览release:preparerelease:perform.

然后,要包含最新版本而不必不断更新依赖项版本,您可以使用依赖关系范围,如下面的代码片段所示,我们在其中指定范围Junit 3.8 - Junit 4.0:

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>[3.8,4.0)</version>
  <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

不需要逗号之前或之后的版本,并且表示+/-无穷大.例如,[4.0,)表示任何大于或等于4.0的版本.

就个人而言,我不喜欢使用依赖范围,因为我发现它可能导致构建可重复性问题并使构建更加脆弱.

但是你可能有充分的理由使用它们.