spring boot starter test 1.4.1 - 使用assertj-core 3.5.x

时间:2016-11-08 21:06:20

标签: maven spring-boot

我想使用最新的assertj-core for Java8(例如断言选项)。 我使用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 dependency
  • 上添加排除对象
  • 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。

1 个答案:

答案 0 :(得分:1)

您可以将其从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