为了减少模块对特定版本的依赖,我想测试具有不同版本依赖关系的模块,这样我就可以确定这些模块的角落。模块可以快乐地工作的版本框。
e.g。该模块是针对库foo.bar 2.1.2构建的。然后该工具应该测试2.0.0,如果它失败了像git bisect之间的版本。那么2.1.2与最新版本之间的相似之处。然后使用下一个依赖项执行此操作。
我发现通过调整库的使用方式扩展版本范围往往是微不足道的。当部署到OSGi容器时,每个依赖项运行一系列广泛的版本会让生活变得更加痛苦。然而,手动测试这么多组合绝对是一场噩梦。
有人知道这样的工具,所以它可以在晚上在CI服务器上运行吗?
PS:我知道这样的工具会有各种粗糙的边缘情况和缺陷。我只想减少构建模块时隐含的假设数量。无论如何,正常的测试都会抓住这些奇怪的案例。答案 0 :(得分:1)
使用Jenkins Matrix Project插件 - 请参阅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 Matrix的每次迭代提供测试版本。
mvn test -Dmy.version=1.31