在 Maven 中测试依赖项的版本
Testing versions of dependencies in maven
为了减少模块对特定版本的依赖,我想测试具有不同版本依赖关系的模块,这样我就可以确定模块将在其中愉快工作的版本框 'corners'。
例如该模块内置于库 foo.bar 2.1.2。然后该工具应该测试 2.0.0,如果它失败,则中间的版本如 git 对分。然后在 2.1.2 和最新版本之间类似。然后对下一个依赖项执行此操作。
我发现通过调整库的使用方式来扩展版本范围通常是微不足道的。部署到 OSGi 容器时,运行在每个依赖项中使用大量版本可以让生活变得轻松很多。然而,手动测试如此多的组合绝对是一场噩梦。
有谁知道这样的工具,所以它可以在晚上 CI 服务器上 运行?
PS:我知道这样的工具会有各种粗糙的边缘情况和缺陷。我只是想减少构建模块时隐含的假设数量。无论如何,正常测试都会捕获这些奇怪的情况。
使用 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>
然后为 Jenkins 矩阵的每次迭代提供一个测试版本。
mvn test -Dmy.version=1.31
为了减少模块对特定版本的依赖,我想测试具有不同版本依赖关系的模块,这样我就可以确定模块将在其中愉快工作的版本框 'corners'。
例如该模块内置于库 foo.bar 2.1.2。然后该工具应该测试 2.0.0,如果它失败,则中间的版本如 git 对分。然后在 2.1.2 和最新版本之间类似。然后对下一个依赖项执行此操作。
我发现通过调整库的使用方式来扩展版本范围通常是微不足道的。部署到 OSGi 容器时,运行在每个依赖项中使用大量版本可以让生活变得轻松很多。然而,手动测试如此多的组合绝对是一场噩梦。
有谁知道这样的工具,所以它可以在晚上 CI 服务器上 运行?
PS:我知道这样的工具会有各种粗糙的边缘情况和缺陷。我只是想减少构建模块时隐含的假设数量。无论如何,正常测试都会捕获这些奇怪的情况。
使用 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>
然后为 Jenkins 矩阵的每次迭代提供一个测试版本。
mvn test -Dmy.version=1.31