如何在 Gradle 构建文件中正确排除“junit-vintage-engine”?

Posted

技术标签:

【中文标题】如何在 Gradle 构建文件中正确排除“junit-vintage-engine”?【英文标题】:How to correctly exclude "junit-vintage-engine" in Gradle build file? 【发布时间】:2020-10-04 17:44:06 【问题描述】:

使用此配置时,我会收到 JUnit Vintage 的 initializationError

testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test'

但使用此配置@RunWith 注释无法解析:

testImplementation (group: 'org.springframework.boot', name: 'spring-boot-starter-test') 
    exclude group: 'org.junit.vintage', name: 'junit-vintage-engine', version: '5.7.0-M1'

如何正确排除 JUnit Vintage 模块?

【问题讨论】:

【参考方案1】:

您只需要从排除规范中删除版本号(因为这会排除无论如何都不会使用的特定版本):

dependencies 
  implementation 'org.springframework.boot:spring-boot-starter'
  testImplementation('org.springframework.boot:spring-boot-starter-test') 
    exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' // <- No version
  


test 
  useJUnitPlatform()

【讨论】:

【参考方案2】:

似乎排除您不使用组和名称作为参数。你使用组和模块:

testImplementation (group: 'org.springframework.boot', name: 'spring-boot-starter-test') 
    exclude group: 'org.junit.vintage', module: 'junit-vintage-engine', version: '5.7.0-M1'

正如 Bjørn Vester 已经指出的那样,您不需要指定版本。

【讨论】:

以上是关于如何在 Gradle 构建文件中正确排除“junit-vintage-engine”?的主要内容,如果未能解决你的问题,请参考以下文章

如何在实验 gradle 中排除 cpp 文件?

如何在 gradle kts 中排除(忽略)android 构建变体

使用 Gradle 从 jar 中排除文件

Gradle - 排除文件与 jar 打包

使用 Gradle 时如何排除传递依赖项的所有实例?

IDEA项目Gradle文件不在Git上传规则中被标红