我想在
Java8中使用最新的assertj-core(例如,在选项上断言).
我使用spring-boot-starter-test 1.4.1它带有预配置的assertj 2.5.0.
我不能使用spring boot父pom.
如何设置我的maven项目,所以我用3.5.2排除或覆盖2.5.0版本?我试过了
>只设置属性assertj.version
>在starter-test依赖项上添加排除项
>在spring-boot-dependencies上添加排除
更新:
我正在为我的多模块项目中的所有模块设置一个自定义的“测试”模块.我不仅需要spring-test-starter,还需要一些其他依赖项和一些测试类和规则.
这是我的项目的样子:
my-module-root
|-my-module-a (using test)
|-my-module-b (using test)
\-test (including starter-test, ... - in COMPILE scope (because this is a test library))
现在,当我在测试模块上排除assertj-core(并包括3.5.2)时,测试模块的依赖关系就可以了.
但是当我检查根级别的依赖关系时,我在类路径上同时拥有assertj-core-2.5.0和assertj-core-3.5.2.
最佳答案 您可以将它从spring-boot-starter-test中排除,然后手动添加不同的版本:
<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.5.2</version>
<scope>test</scope>
</dependency>
</dependencies>
要验证包含哪个版本:
$mvn dependency:tree | grep assertj
[INFO] \- org.assertj:assertj-core:jar:3.5.2:test