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

时间:2009-10-06 08:27:48

标签: maven-2 versioning release-management

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

按发布我的意思是生成的罐子被包装并包含在生产环境中。这个项目是一个 leaf ,因此它不发布API,它只使用它。对于其他两个项目,它最多也是 runtime 依赖项。

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

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

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

1 个答案:

答案 0 :(得分:5)

实际上,您可以使用x-SNAPSHOT版本并仍使用maven-release-plugin。只需在mvn release:prepare之前使用mvn release:perform来准备发布,并将poms中的版本从x-SNAPSHOT更改为新版本(系统将提示您输入要使用的版本)。您可以查看此introduction到maven-release-plugin,以快速了解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>

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

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

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