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

我想在
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
点赞