Maven 弹簧启动机测试1.4.1-使用assertj core 3.5.x
我想使用最新的assertj core for Java8(例如在optionals上断言)。 我使用spring boot starter test 1.4.1,它附带assertj 2.5.0预配置 我不能使用spring boot父pom 我如何设置maven项目,以排除或覆盖版本2.5.0和版本3.5.2?我试过了Maven 弹簧启动机测试1.4.1-使用assertj core 3.5.x,maven,spring-boot,Maven,Spring Boot,我想使用最新的assertj core for Java8(例如在optionals上断言)。 我使用spring boot starter test 1.4.1,它附带assertj 2.5.0预配置 我不能使用spring boot父pom 我如何设置maven项目,以排除或覆盖版本2.5.0和版本3.5.2?我试过了 仅设置属性assertj.version 在启动机测试依赖项上添加排除项 在spring引导依赖项上添加排除 更新: 我正在为我的多模块项目中的所有模块设置自定义“测试”
- 仅设置属性
assertj.version
- 在启动机测试依赖项上添加排除项
- 在
spring引导依赖项上添加排除
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测试中排除,然后手动添加不同的版本:
<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>
谢谢你的更新。这就是我第二点的意思。我已经试过了。忘了在问题中提及一些东西模块A和B是否将模块测试包括在“测试”范围内?。您确定除了“测试”模块之外,您不包括任何spring boot starter测试吗?是和是。仔细检查。我将在github上创建一个小示例来验证。。。
$ mvn dependency:tree | grep assertj
[INFO] \- org.assertj:assertj-core:jar:3.5.2:test