2

我正在尝试配置 Jenkins-Job 以使用 Maven-Release-Plugin 发布 Java-Project。
我想确保如果当前版本与前一个版本不兼容,我用来将版本标记为与早期主要版本不兼容的主要版本会发生变化。

一个例子:

最后一个版本是1.9.5 版本,其中包含一个名为 Foo的类。
当前版本中,此类已被删除。
用户指定当前版本为1.9.6并启动 Jenkins-Job。

Release 应该告诉用户当前的主要版本应该是2而不是1,因为 API 变得不兼容。

我想过使用上一版本的单元测试来测试当前版本的代码。如果某些 API 变得不兼容,则以前版本的单元测试应该在编译或测试期间失败(假设该代码有一个单元测试)。

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

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

4

2 回答 2

2

由于我对您的 API 没有任何了解,因此无法提出任何与测试您的 API 兼容性相关的建议。

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

使用此功能,您可以根据此作业的结果触发不同参数的下游作业。即,如果整个测试套件通过,则触发次要版本构建,反之亦然。

于 2012-04-12T11:27:01.260 回答
1

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

您将单元测试分成不同项目的想法是一个很好的想法。只需针对您要发布的 -SNAPSHOT 版本运行先前版本的测试即可。如果他们通过了,那很好。否则,增加主版本号。

于 2012-04-12T12:50:53.697 回答