Ste*_*kov 8 junit gradle spring-boot junit5
我正在使用Gradle 5的BOM(物料清单)功能.这是我为JUnit 5依赖项描述它的方式:
testImplementation(enforcedPlatform("org.junit:junit-bom:5.4.0")) // JUnit 5 BOM
testImplementation("org.junit.jupiter:junit-jupiter-api")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
testImplementation("org.junit.jupiter:junit-jupiter-params")
Run Code Online (Sandbox Code Playgroud)
我的假设是提供BOM将解析依赖项的版本5.4.0.但是,他们得到了解决5.1.1.我不知道为什么.(我还要求enforcedPlatform()锁定指定的版本)
检查JUnit 5的BOM我们发现所有org.junit.jupiter依赖项都以版本列出5.4.0(在项目中解析为5.1.1),所有org.junit.platform依赖项都列在版本中1.4.0,并在项目中正确解析.
我不确定我错过了什么,并希望在这里得到一些帮助.谢谢!
编辑:
我使用Sormuras响应并将所有BOM移动到dependencies {}块的顶部,但仍未获得版本5.4.0.然后我怀疑它可能来自我使用的Gradle Spring Dependency Management插件,所以当我评论它时,我得到了版本JUnit 5.4.0.如何禁用来自Gradle Spring Dependency Management插件的JUnit?
最后:
我决定直接使用Spring Boot Dependencies BOM并删除Gradle插件:
implementation(platform("org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE"))
我想这个插件是在Gradle 5之前为那些版本的Gradle创建的,你不能使用BOM文件.现在有了BOM支持,我可以直接包含它.这样我的JUnit版本就像我在enforcedPlatform()块中指定的一样.
我接受了下面的Sam Brannen的答案,因为他很好地解释了问题是如何发生的以及解决了什么问题,我认为这对使用旧版本Gradle的人来说很重要.
Sam*_*nen 31
如何禁用来自Gradle Spring Dependency Management插件的JUnit?
对于初学者,如果您使用的是Spring的依赖关系管理插件,那么您不应该导入,junit-bom因为这会导致这些依赖关系的重复(并且可能存在冲突)管理.
除此之外,每当您使用Spring的依赖关系管理插件并希望覆盖托管版本时,您必须通过覆盖插件使用的BOM中定义的版本的确切名称来实现.
这在Spring Boot for Gradle和Maven中有记录.
对于Spring Boot,JUnit Jupiter版本的名称是"junit-jupiter.version".您可以在此处找到Spring Boot 2.1.2的所有托管版本的名称.
因此,在Gradle中,您将按如下方式覆盖它.
ext['junit-jupiter.version'] = '5.4.0'.
你可以看到我在这里完成了这个:https://github.com/sbrannen/spring-events/blob/master/build.gradle#L38
使用Maven,您可以按如下方式覆盖它.
<properties>
<junit-jupiter.version>5.4.0</junit-jupiter.version>
</properties>
Run Code Online (Sandbox Code Playgroud)
更多背景信息:https://docs.spring.io/platform/docs/current/reference/html/getting-started-overriding-versions.html
JUnit 5.4.0 简化了其工件,现在为 Jupiter 提供了一个工件 - org.junit:junit-jupiter。即,您也应该简化您的 Gradle 文件:
testImplementation(enforcedPlatform("org.junit:junit-bom:5.4.0")) // JUnit 5 BOM
testImplementation("org.junit.jupiter:junit-jupiter")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4768 次 |
| 最近记录: |