我正在使用Gradle5的BOM(物料清单)功能。这是我对JUnit5依赖项的描述:
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")
我的假设是,提供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,但仍然无法获得版本5.4.0
。然后我怀疑它可能来自我使用的Gradle Spring依赖项管理插件,所以当我注释掉它时,我得到了JUnit 5.4.0版本。如何禁用来自Gradle Spring依赖项管理插件的JUnit?
我决定直接使用Spring Boot Dependencies BOM并删除Gradle插件:
实现(平台(“org.springframework.boot:spring-boot-dependencies:2.0.5.release”))
我想这个插件是为Gradle5之前的Gradle版本创建的,在这些版本中你不能使用BOM文件。现在有了BOM的支持,我可以直接包括它。这样,我的JUnit版本就像我在EnforcedPlatform()
块中指定的那样。
如何禁用来自Gradle Spring依赖项管理插件的JUnit?
首先,如果您使用的是Spring中的依赖关系管理插件,则不应该导入junit-bom
,因为这会导致对这些依赖关系的重复(并且可能发生冲突)管理。
除此之外,无论何时使用Spring中的依赖项管理插件并想要覆盖托管版本,都必须覆盖插件使用的BOM中定义的版本的确切名称。
对于Spring引导,JUnit Jupiter版本的名称是“junit-jupiter.version”。您可以在这里找到Spring Boot2.1.2的所有托管版本的名称。
因此,在Gradle中,您将重写它,如下所示。
ext['junit-jupiter.version']=“5.4.0”
。
对于Maven,您可以按如下方式重写它。
<properties>
<junit-jupiter.version>5.4.0</junit-jupiter.version>
</properties>
更多背景信息请访问:https://docs.spring.io/platform/docs/current/reference/html/getting-start-overring-versions.html
问题内容: 好的,我对Mac和OSX有点陌生,但是我选择了一个,以便可以使用我的Java程序对一些Java程序进行故障排除,因为我工作的公司使用OSX和Windows机器的组合。我遇到的问题是,当我从Oracle网站安装Java 7时,它会更新首选项菜单,并在双击它们时似乎可以正确执行.jar文件,但是终端窗口的版本仍为1.6.0_43并运行由于版本较旧,终端上的相同.jar文件会导致运行时错误。
我已经从1.3更新了Spring启动版本。5至1.4。0,我得到以下错误 使用Camunda BPM,版本为Spring Boot:(v1.4.0.发行版)Camunda BPM:(v7.5.0)Camunda BPM Spring Boot Starter:(v1.2.1) 对卡蒙达的依赖, 对于包装,我们使用以下插件, 请让我知道从1.3. x更新到1.4.0Spring引导失败的原因
好吧,我对Mac和OSX有点陌生,但我选择了一个,这样我就可以用一个对我的Java程序进行一些故障排除,因为我工作的公司使用OSX和Windows机器的组合。我遇到的问题是,当我从Oracle的网站安装Java7时,它更新了首选项菜单,双击.jar文件时显示可以正确执行这些文件,但终端窗口的版本仍然是1.6.0_43,从终端运行相同的.jar文件会导致运行时错误,原因是版本较旧。 当我导航到/li
该项目需要一个自定义的RedisConnectionFactory,并发现了一个问题:当使用LettuceConnectionFactory时,运行时总是报告java.lang.NullPointerException,而JedisConnectionFactory可以通过测试。我想LettuceConnectionFactory是否对redis和Springboot有版本限制? 开发环境: Sp
SpringBoot项目中parent中没有默认版本的依赖如何选择版本?类如mybatis-spring-boot-starter依赖,parent中是没有默认配置的。我想请问类似这种情况如何选择合适的依赖版本呢?我在mybatis官网也没有找到相关资料,依赖的jar包中也没有,我不喜欢看网友给的资料,我还是喜欢看官网的资料,大家都是怎么选择的呢?靠经验?靠百度? 尝试过百度和查看官网,想知道对于
我使用Spring Initializr生成了一个Spring Bootweb应用程序,使用macOS Sierra中的嵌入式Tomcat+Thymeleaf模板引擎。我想在Mac OS中使用系统变量User Home Folder Name 但我在启动应用程序时出现了这个错误