当前位置: 首页 > 知识库问答 >
问题:

如何在Maven依赖项中使用JUnit5.2BOM?

皇甫建木
2023-03-14

根据JUnit新发布的V.5.2,现在有一个BOM:

JUnit BOM:为了使用Maven或Gradle简化依赖性管理,现在在org.JUnit:jUnit-BOM:5.2.0 Maven坐标下提供了一个物料清单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>
<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.3Ultimate x64,Maven v.3.5.3,target JDK 10.0.1)似乎不知道 标记是什么,也不解析其内容。项目结构中没有注册任何模块。
但是如果我删除 标记,那么IDEA不会加载BOM。
我还尝试使用maven插件通过IDEA添加BOM的maven坐标,但是当它找到不同的junit包时,它没有找到BOM,也无法从org.junit:junit-BOM:5.2.0下载任何内容

如何将此BOM文件添加到pom依赖项中?
谢谢!

共有1个答案

郏经纬
2023-03-14

引用 下的bom文件只管理兼容的版本。您仍然需要在 下声明所有需要的依赖项,但不需要在 下声明。这就是Maven bom引用的工作原理。IntelliJ也可以这样处理它们。

 类似资料:
  • 问题内容: 有没有一种方法可以将类型依赖项添加到我的POM并获取其所有模块? JavaMail是一个很好的例子。Maven Central Repo的父POM名为:com.sun.mail:all:1.5.0,模块包括:mail,mailapi,mailapijar,smtp,imap,gimap,pop3和dsn。 但是,“所有”人工制品只有一个文件: 是否可以将“所有”人工制品添加为对我的PO

  • 我下载了一个Maven项目,可以运行来构建目标helloworld。jar,它依赖于多个第三方运行时jar。但是,我不知道如何使用Maven将这些第三方JAR自动复制到特定目录中。查看pom。xml,我发现了以下语句。因此,基本上我希望将第三方JAR复制到。要做到这一点,我应该使用哪个maven插件/短语/目标?有人能给我看一个可运行的maven语法吗?谢谢

  • 我正在做一个有大约200MB依赖项的项目,我希望避免由于带宽有限而导致的无用上传。 当我推我的Dockerfile(我一会儿会附上)时,我总是有一个~200MB的上传,即使我没有碰pom.xml: 这个Dockerfile应该生成一个200MB的fatJAR,包括所有依赖项,这就是为什么每次都会发生~200MB的上传。我想要实现的是构建一个包含所有依赖项的层,并“告诉”打包阶段不要将依赖项JAR包

  • 问题内容: 所以快速的背景是我正在创建一个Java程序,该程序使用许多不同的导入 我知道Netbeans找不到这些文件,因为我的计算机上没有这些文件。但是有没有办法让Netbeans自动与org.apache连接并检索这些文件?还是我只需要去下载它们。有人建议使用Maven,但是我不确定这是否是正确的解决方案,或者如何解决? 谢谢 问题答案: 除非您使用Maven结构(请参见此处,Maven入门)

  • 问题内容: 我有一个项目,需要以下Maven jibx插件: 在jibx插件pom内部,有一个xpp3依赖关系,我想从我的项目构建过程中排除它(由于某种原因,我无法在私有存储库中拥有它)。 有没有一种方法可以配置我的pom.xml(而不是插件pom)来排除该依赖关系? 编辑:我试图从插件pom中删除xpp3依赖项,并且该项目可以成功构建,所以我知道依赖项不是强制性的。 问题答案: 这是一个示例,其

  • 问题内容: 如何获取我拥有的jar文件并将其添加到Maven 2的依赖系统中?我将成为此依赖项的维护者,并且我的代码需要在类路径中使用此jar,以便对其进行编译。 问题答案: 您必须分两步执行此操作: 1.给您的JAR一个groupId,artifactId和版本,然后将其添加到您的存储库中。 如果您没有内部存储库,而只是试图将JAR添加到本地存储库,则可以使用任意groupId / artifa