Maven 依赖 jar 包时版本冲突的解决

发布于 2024-07-13 13:30:19 字数 1469 浏览 29 评论 0

共有四种解决方式:

1、第一声明优先原则:

在 pom.xml 配置文件中,如果有两个名称相同版本不同的依赖声明,那么先写的会生效。
所以,先声明自己要用的版本的 jar 包即可。

2、路径近者优先:

直接依赖优先于传递依赖,如果传递依赖的 jar 包版本冲突了,那么可以自己声明一个指定版本的依赖 jar,即可解决冲突。

3、排出原则:

传递依赖冲突时,可以在不需要的 jar 的传递依赖中声明排除,从而解决冲突。

<dependency>
  <groupId>org.apache.struts</groupId>
  <artifactId>struts2-spring-plugin</artifactId>
  <version>2.3.24</version>
  <exclusions>
    <exclusion>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
    </exclusion>
  </exclusions>
</dependency>

4、版本锁定原则(最常使用)

在配置文件 pom.xml 中先声明要使用哪个版本的相应 jar 包,声明后其他版本的 jar 包一律不依赖。解决了依赖冲突。

<properties>
    <spring.version>4.2.4.RELEASE</spring.version>
    <hibernate.version>5.0.7.Final</hibernate.version>
    <struts.version>2.3.24</struts.version>
  </properties>
  <!-- 锁定版本,struts 2-2.3.24、spring 4.2.4、hibernate 5.0.7 -->
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
      </dependency>
</dependencies>
</dependencyManagement>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

许久

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

謌踐踏愛綪

文章 0 评论 0

开始看清了

文章 0 评论 0

高速公鹿

文章 0 评论 0

alipaysp_PLnULTzf66

文章 0 评论 0

热情消退

文章 0 评论 0

白色月光

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文