为什么 Maven 依赖项的顺序很重要?

2024-03-25

以前我认为 Maven 依赖项的顺序并不重要,并认为这是它的优点。这是我的旧pom.xml的依赖关系:

<dependencies>

    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>2.19</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.1.7.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-spring3</artifactId>
        <version>2.19</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
        <version>2.19</version>
    </dependency>

</dependencies>

它运行良好,今天我想将 spring 依赖项移到底部,以便那些与球衣相关的可以放在一起。然而,我再也无法让它工作了,我的码头抱怨道:

[ERROR] Failed to execute goal org.eclipse.jetty:jetty-maven-plugin:9.3.0.M1:run (default-cli) on project mtest: Execution default-cli of goal org.eclipse.jetty:jetty-maven-plugin:9.3.0.M1:run failed: A required class was missing while executing org.eclipse.jetty:jetty-maven-plugin:9.3.0.M1:run: org/apache/commons/logging/LogFactory

这真的很令人困惑,所以我必须关心依赖顺序吗?我如何知道正确的顺序?


依赖关系的顺序does之所以重要,是因为从 2.0.9 版本开始,Maven 如何解决传递依赖关系。摘自文档 https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies:

(...) 这决定了当遇到工件的多个版本时将使用哪个版本的依赖项。 (...) 您始终可以通过在项目的 POM 中显式声明来保证版本。 (...)从 Maven 2.0.9 开始,声明中的顺序才重要:第一个声明获胜.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Maven 依赖项的顺序很重要? 的相关文章

随机推荐

  • 如何用省略号删除右侧的多余空间

    我想用省略号类删除右侧的额外空间 ellipsis white space nowrap overflow hidden text overflow ellipsis max width 90px div float left clear
  • 如何在 Python 中检查空 gzip 文件

    我不想使用操作系统命令 因为这使得它依赖于操作系统 这可以在tarfile tarfile is tarfile filename 检查文件是否为 tar 文件 我在中找不到任何相关命令gzip module EDIT 为什么我需要这个 我
  • 如何使Spring缓存中的缓存名称可配置?

    我们使用 Spring 缓存框架进行缓存 并且希望能够支持多个缓存命名空间 例如 book 或 isbn 并且缓存命名空间是可配置的 而不是硬编码在类中 例如具有 Cacheable book isbn public Book findBo
  • JavaScript:内联函数与预定义函数

    任何人都可以向我提出一些关于使用的论据吗内联函数反对通过预定义函数给一些处理程序的名字 IE 哪个更好 function setTimeout function some code here 5 versus function functi
  • Android 2.2异常处理,catch参数null

    我想知道是否有人遇到奇怪的行为 我有 try catch 块 其中 catch 语句分配一个异常变量以使我能够正确处理异常 我得到的是 catch Exception ex 语句中的 ex null 请问我做错了什么 public clas
  • 如何读取用逗号分割的 CSV 文件,除非它是字段的一部分[重复]

    这个问题在这里已经有答案了 我有以下 C 代码 它读取 CSV 文件 目标是将其保存到 SQL 表中 StreamReader sr new StreamReader tbCSVFileLocation Text ToString stri
  • 在 google Drive api 的根目录中创建文件夹并将文件上传到该文件夹

    我想使用 CURL 在 google 驱动器根目录中创建文件夹 文件已上传到驱动器 但我需要创建一个文件夹并将文件上传到该文件夹 根据 hanshenrik 代码 创建文件夹正在工作 移动文件不起作用 我更新的代码 REDIRECT URI
  • 将列与 t-sql 中的值列表进行比较

    我正在页面上显示记录 并且我需要一种方法让用户选择要在另一个页面上显示的记录的子集 这些记录不存储在任何地方 而是动态生成的 在 sql 中说明 uniqueid 位于此 id 列表中而不是表等中的位置的最佳方法是什么 我知道我可以使用一堆
  • 模板化类专门化,其中模板参数是模板

    我想知道类似的事情是否可能 基本上 我有一个模板类 它偶尔会采用模板类的对象 我想将它 或只是一个成员函数 专门用于特定的模板类 但该类的 通用 形式 template
  • 如何在 C# 中关闭*多显示*?

    关于 如何在c 中关闭显示器 的文章有很多 但都是关闭所有显示器 有没有可能的方法来关闭特定的监视器 一些研究引导我来到这里 http www codeguru com forum showthread php p 1011720 post
  • 专有的 Haskell 库

    我对 Haskell 有点陌生 已经在业余项目中使用它几个月了 我想编写一个 C 库的 Haskell 接口 所有代码都是专有的 而不是开源的 所以我的问题是 如果我最终将其分发给客户并且不想提供源代码 而是提供诸如共享库之类的东西怎么办
  • 如何在未迁移到Androidx的项目中使用Androidx库

    我目前的项目还是比较稳定的 目前我不想迁移到 Androidx 但我需要用这个com pierfrancescosoffritti androidyoutubeplayer core 10 0 3我的项目中的图书馆 已迁移至 Android
  • 使 IE 中的内容不可选择

    这是我用 JS 写的图表 http jsfiddle net 49FVb http jsfiddle net 49FVb The css moz user select none khtml user select none 在 Chrom
  • Cassandra 3.9 和 CQL 规范版本

    只是好奇 Cassandra 3 9 支持哪些版本的 cql 我知道Cassandra 3 9支持cql 3 4 2 但是3 4 3是否也支持 以及如何升级 配置 Cassandra 3 9 以使用 cql 3 4 3 我在网上搜索了一下
  • 使用 C++ 连接到 MySQL 服务器

    我正在尝试使用 C 和 Visual C 2008 Express Edition 上的 MySQL ODBC 5 1 驱动程序连接到 MySQL 服务器 我按照 MSDN 中的这些说明进行操作 SQL连接 http msdn micros
  • 在 pandas 中指定 read_sql 的数据类型

    我想指定执行 pandas read sql 时返回的数据类型 我特别感兴趣的是节省内存并将浮点值返回为 np float32 而不是 np float64 我知道我可以随后使用 astype np float32 进行转换 但这并不能解决
  • 编译器无法识别我的 C++ 类 - 循环依赖

    有这个基类 Core hpp ifndef C3 CORE HPP define C3 CORE HPP include
  • Ruby:如何对字符串进行排序,同时保留一些字符?

    我是 Ruby 的新手 我想对字符串进行排序 但保留非字母数字字符 例如 hello sally seen 10 dec 2016 gt ehllo allsy eens 01 cde 0126 我尝试过这样做 word scan w co
  • C# - 如何更改 PNG 质量或颜色深度

    我应该编写一个程序 从用户那里获取一些 PNG 图像 进行一些简单的编辑 例如旋转 并将它们保存在 JAR 文件中 以便它可以使用图像作为资源 问题是 当我打开一个 80kb 图像 然后用 C 保存它时 我会得到一个具有相同质量但占用 13
  • 为什么 Maven 依赖项的顺序很重要?

    以前我认为 Maven 依赖项的顺序并不重要 并认为这是它的优点 这是我的旧pom xml的依赖关系