在maven中测试依赖项的版本

Pet*_*ans 5 java dependencies maven

为了使模块更少依赖于特定版本,我想测试具有不同版本的依赖项的模块,以便我可以确定模块将快乐地工作的版本框的"角落".

例如,模块是针对库foo.bar 2.1.2构建的.然后该工具应该测试2.0.0,如果它失败了像git bisect之间的版本.那么2.1.2与最新版本之间的相似之处.然后使用下一个依赖项执行此操作.

我发现通过调整库的使用方式来扩展版本范围通常是微不足道的.当部署到OSGi容器时,每个依赖项运行一系列广泛的版本会让生活变得更加痛苦.然而,手动测试这么多组合绝对是一场噩梦.

有没有人知道这样的工具,所以它可以在晚上在CI服务器上运行?

PS:我知道这样的工具会有各种粗糙的边缘情况和缺陷.我只想减少构建模块时隐含的假设数量.无论如何,正常测试将捕获这些奇怪的情况.

And*_*dre 2

使用 Jenkins Matrix 项目插件 - 请参阅https://wiki.jenkins-ci.org/display/JENKINS/Building+a+matrix+project

在 pom.xml 中将版本定义为属性。

<properties>
  <my.version>1.30</my.version>
</properties>
...
<dependency>
  <groupId>com.acme</groupId>
  <artifactId>my-artifact</artifactId>
  <version>${my.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

然后为 Jenkins 矩阵的每次迭代提供一个测试版本。

mvn test -Dmy.version=1.31
Run Code Online (Sandbox Code Playgroud)