Maven 2 使用小型、非常频繁的版本控制maven项目

Maven 2 使用小型、非常频繁的版本控制maven项目,maven-2,versioning,release-management,Maven 2,Versioning,Release Management,我正在将ant项目转换为maven项目。这个项目不同于我通常转换的项目,因为它有非常频繁的版本,通常每天8-10次 所谓发布,我的意思是生成的jar被打包并包含在生产环境中。这个项目是一个leaf项目,所以它不发布API,只使用它。它最多也是另外两个项目的运行时依赖项 我希望有一个版本控制方案,其中: 它很容易部署,而不必强迫开发人员考虑分配给项目的版本号,因为版本号没有意义 很容易将此项目的最新版本作为依赖项包含,而不会不断增加依赖项版本 最有可能的是,依赖项版本不会是-SNAPSHOT,

我正在将ant项目转换为maven项目。这个项目不同于我通常转换的项目,因为它有非常频繁的版本,通常每天8-10次

所谓发布,我的意思是生成的jar被打包并包含在生产环境中。这个项目是一个leaf项目,所以它不发布API,只使用它。它最多也是另外两个项目的运行时依赖项

我希望有一个版本控制方案,其中:

  • 它很容易部署,而不必强迫开发人员考虑分配给项目的版本号,因为版本号没有意义
  • 很容易将此项目的最新版本作为依赖项包含,而不会不断增加依赖项版本

最有可能的是,依赖项版本不会是
-SNAPSHOT
,因为这会与我们在其他项目中使用的
maven发布插件
冲突,但我愿意接受建议。

实际上,您可以使用
x-SNAPSHOT
版本,并且仍然使用。只需使用
mvn发行版:在
mvn发行版之前准备
:执行
即可准备发行版,并将poms中的版本从
x-SNAPSHOT
更改为新版本(系统将提示您使用版本)。您可以在maven release插件中查看这篇文章,快速了解
release:prepare
release:perform

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

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>[3.8,4.0)</version>
  <scope>test</scope>
</dependency>

朱尼特
朱尼特
[3.8,4.0)
测试
逗号前后的版本不是必需的,表示+/-无穷大。例如,
[4.0,)
表示大于或等于4.0的任何版本

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


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

谢谢您的回答。我可能会完全这样做,但我仍然存在一个问题,即版本和发行版与此项目无关-它处于不断变化的状态。据我所知,您在这里有两个选择:1.使用快照版本(适用于连续流)忘记了发布插件,但我不会对生产代码2这么做。使用发布插件和递增版本(或者maven不会选择更新)我不知道中间是否有一个解决方案。1版本版本和发布插件,请参阅此选项以获得更多选项:@ Read,您是否知道最新版本/发布功能是否如此消息中所声明的那样被弃用?