maven - 在Maven依赖关系中,如何使用JUnit 5.2 BOM表?

104 5

JUnit的5.2现在有一个BOM :

JUnit BOM:为了简化使用Maven或Gradle的依赖管理,现在在org.junit:junit-bom:5.2.0 Maven提供了物料清单POM。

当前的POM看起来像这样:


<?xml version="1.0" encoding="UTF-8"?>


<project xmlns="http://maven.apache.org/POM/4.0.0"


 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"


 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">


 <modelVersion>4.0.0</modelVersion>



 <groupId>com.bosspanda.tmp</groupId>


 <version>0.1-SNAPSHOT</version>



 <artifactId>tmp</artifactId>


 <properties>


 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>


 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>


 <maven.compiler.source>10</maven.compiler.source>


 <maven.compiler.target>10</maven.compiler.target>


 <java.version>10</java.version>


 <junit.version>4.12</junit.version>


 <junit.jupiter.version>5.2.0</junit.jupiter.version>


 <junit.vintage.version>5.2.0</junit.vintage.version>


 <junit.platform.version>1.2.0</junit.platform.version>


 </properties>


 <dependencies>


 <dependency>


 <groupId>org.junit.jupiter</groupId>


 <artifactId>junit-jupiter-api</artifactId>


 <version>${junit.jupiter.version}</version>


 <scope>test</scope>


 </dependency>


 <dependency>


 <groupId>org.junit.jupiter</groupId>


 <artifactId>junit-jupiter-engine</artifactId>


 <version>${junit.jupiter.version}</version>


 <scope>test</scope>


 </dependency>


 <dependency>


 <groupId>org.junit.jupiter</groupId>


 <artifactId>junit-jupiter-params</artifactId>


 <version>${junit.jupiter.version}</version>


 <scope>test</scope>


 </dependency>


 <dependency>


 <groupId>org.junit.vintage</groupId>


 <artifactId>junit-vintage-engine</artifactId>


 <version>${junit.vintage.version}</version>


 <scope>test</scope>


 <dependency>


 <groupId>junit</groupId>


 <artifactId>junit</artifactId>


 <version>${junit.version}</version>


 <scope>test</scope>


 </dependency>


 </dependencies>


</project>



但是,我在将它集成到项目的pom.xml中时遇到了麻烦。在查看链接资源(https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies )之后,我得到结论,我必须用一个单独的依赖项替换不同的依赖项:


<dependencyManagement>


 <dependencies>


 <dependency>


 <groupId>org.junit</groupId>


 <artifactId>junit-bom</artifactId>


 <version>5.2.0</version>


 <type>pom</type>


 <scope>import</scope>


 </dependency>


 </dependencies>


</dependencyManagement>



但有了这个后,IntelliJ IDEA (v,2018.1.3 Ultimate x64 ,maven v . 3.5.3 ,target JDK 10.0.1 ) 似乎不知道项目结构中没有注册模块,
如果我删除<dependencyManagement>标签,BOM也不会被IDEA加载,

如何将BOM文件添加到pom依赖项?

时间: 原作者:

116 3

在下面引用bom表文件 <dependencyManagement><dependencies>只需管理版本就可以使其兼容。这是Maven bom引用工作的方式,IntelliJ也可以用这种方式处理它们。

原作者:
85 1

以下在我使用的surefire.plugin.version 2.22.2中可以工作


<dependencyManagement>


 <dependencies>


 <dependency>


 <groupId>org.junit</groupId>


 <artifactId>junit-bom</artifactId>


 <version>5.5.2</version>


 <type>pom</type>


 <scope>import</scope>


 </dependency>


 </dependencies>


</dependencyManagement>


<dependencies>


 <dependency>


 <groupId>org.junit.jupiter</groupId>


 <artifactId>junit-jupiter</artifactId>


 <scope>test</scope>


 </dependency>


 <!--Optional: Supports running Junit4 along with Junit5 -->


 <dependency>


 <groupId>org.junit.vintage</groupId>


 <artifactId>junit-vintage-engine</artifactId>


 <scope>test</scope>


 </dependency>


</dependencies>



原作者:
...