Java Jenkins:使用单元测试自动检查Maven版本

Java Jenkins:使用单元测试自动检查Maven版本,java,unit-testing,maven,jenkins,release,Java,Unit Testing,Maven,Jenkins,Release,我正在尝试配置Jenkins作业,以便使用Maven发布插件发布Java项目。 如果当前版本与以前的版本不兼容,我希望确保主版本(我用来将某个版本标记为与早期主版本不兼容)发生更改 例如: 上一个版本是版本1.9.5,其中包含一个名为 Foo 在当前版本中,该类已被删除。 用户指定为当前发布版本1.9.6,并启动 詹金斯的工作 该版本应告知用户,当前主要版本预计为2而不是1,因为API已变得不兼容 我考虑使用以前版本的单元测试来测试当前版本的代码。如果某些API变得不兼容,那么在编译或测试过程中

我正在尝试配置Jenkins作业,以便使用Maven发布插件发布Java项目。
如果当前版本与以前的版本不兼容,我希望确保主版本(我用来将某个版本标记为与早期主版本不兼容)发生更改

例如:

上一个版本是版本1.9.5,其中包含一个名为 Foo
在当前版本中,该类已被删除。
用户指定为当前发布版本1.9.6,并启动 詹金斯的工作

该版本应告知用户,当前主要版本预计为2而不是1,因为API已变得不兼容

我考虑使用以前版本的单元测试来测试当前版本的代码。如果某些API变得不兼容,那么在编译或测试过程中,先前版本的单元测试应该失败(假设该代码有一个单元测试)

我的方法需要将测试放在一个单独的项目中,并从我的VCS中检查两个版本


您是否知道任何Jenkins插件可能有助于这样做,或者您对如何检查API在两个主要版本之间是否不兼容有任何其他想法?

因为我对您的API没有任何了解,所以无法建议与测试API兼容性相关的任何内容

在Jenkins/Maven前端,我建议您使用名为“在其他项目上触发参数化构建”的构建后操作选项,将实际发布构建作为测试作业的下游作业运行


通过此功能,您可以根据此作业的结果,使用不同的参数触发下游作业。也就是说,如果整个测试套件都通过了,则触发一个次要的发布版本,反之亦然。

我认为使用Jenkins或发布插件没有任何意义——你打算发布多少次主要版本


您将单元测试分离到不同项目中的想法是很好的。只需针对您建议发布的快照版本运行上一版本的测试。如果他们通过了,那就好了。否则,,增加主要版本号。

我正在考虑以下步骤来执行发布:-签出VCS的新副本-生成当前代码并运行单元测试-签出以前版本的单元测试-运行以前的单元测试-使用正确版本标记VCS-启动发布并将当前版本更新到下一个快照版本如果我们有一个单一的作业/工具,我们只提供当前和下一个发布版本,这不是更容易吗?是的,我想用一个工具做这件事会更容易。也许您可以使用与旧版本的单元测试相结合的方法?