【问题标题】:Maven dependency shows in dependency tree but no jar is importedMaven 依赖项显示在依赖项树中,但没有导入 jar
【发布时间】:2019-10-10 09:02:16
【问题描述】:

我正在从事的项目有很多级别和一个父 pom,因此很难评估导入的依赖项的最终结果。

但是,查看依赖项:树和有效的 pom,我可以看到我正确导入了 JUnit-jupiter 5.5.2,但是我在我的项目的 maven 依赖项列表中看不到 jar,我实际上看到了 JUnit -木星 5.2.0 。

已经试过mvc clean install -U

有什么想法吗?

罐子和依赖:树

有效-pom

【问题讨论】:

  • IntelliJ 在导入 Maven 配置时是否显示任何错误?
  • 代码是否有与 Junit 类相关的复杂错误?
  • JUnit-jupiter 5.2.0 仍在您的项目中的原因可能是因为它是其他一些依赖项的传递依赖项。您可以做的是查找 JUnit-jupiter 5.2.0 的父依赖项并从中排除传递依赖项。
  • @WimDeblauwe。不。它没有显示任何错误,就好像一切都干净又好。
  • @Laguh 有时依赖:树不会显示所有传递依赖。值得从图形树尝试。解释@-->stackoverflow.com/questions/34529795/…

标签: java maven intellij-idea junit5


【解决方案1】:

JUnit-jupiter 5.2.0 仍在您的项目中的原因可能是由于它是其他一些依赖项的传递依赖项。您可以做的是查找 JUnit-jupiter 5.2.0 的父依赖项并从中排除传递依赖项。

使用项目的图形依赖树并扩展所有传递依赖并搜索 jupiter 库。 如果有 JUnit-jupiter 5.2.0 作为传递依赖项,您可以将其排除如下。

    <dependency>
        <groupId>it.some.parent</groupId>
        <artifactId>parent-library</artifactId>
        <version>${parent.library.version}</version>
        <scope>provided</scope>
        <exclusions>
            <exclusion>
                <groupId>*</groupId>
                <artifactId>*</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

【讨论】:

  • 它来自父 pon 。所以我声明了在 上排除的依赖项。
【解决方案2】:

通过排除pom依赖管理中的传递依赖来导入正确的jar:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>${spring-boot.version}</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

【讨论】:

    猜你喜欢
    • 2015-09-10
    • 2014-05-23
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    相关资源
    最近更新 更多