zoukankan      html  css  js  c++  java
  • Maven中jar版本冲突问题的解决

    如:在父工程中引入了struts-core,hibernate-core,发现jar包是有冲突的。javassist存在版本上冲突。

    方法一:

    <dependency>
              <groupId>org.apache.struts</groupId>
              <artifactId>struts2-core</artifactId>
              <version>2.3.24</version>
              <!-- 锁定这个javassist -->
              <exclusions>
                  <exclusion>
                      <artifactId>javassist</artifactId>
                      <groupId>javassist</groupId>
                  </exclusion>
              </exclusions>
          </dependency>

    ok后,pom.xml文件中那个dependency里会多出一个exclusions标签来锁定想要锁定的包。

    方法二:在pom.xml文件中的dependencyManagement标签中直接设置所要锁定的jar包。

    <!-- 版本锁定管理 -->
      <dependencyManagement>
          <dependencies>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-beans</artifactId>
                  <version>4.2.4.RELEASE</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-context</artifactId>
                  <version>4.2.4.RELEASE</version>
              </dependency>
          </dependencies>
      </dependencyManagement>

    要调用锁定的那些jar包的话,在dependencyManagement之外的dependencies标签里面调用就可以了。

    <!-- 使用已锁定的版本(不用注明版本号) -->
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-beans</artifactId>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-context</artifactId>
          </dependency>

    方法三:在pom.xml文件中的properties标签中注明版本号。

      <!-- 版本的锁定 -->
      <properties>
          <spring.version>4.2.4.RELEASE</spring.version>
          <struts.version>2.3.24</struts.version>
          <hibernate.version>5.0.7.Final</hibernate.version>
          <mysql.version>5.1.6</mysql.version>
          <log4j.version>1.2.12</log4j.version>
      </properties>

    在引入jar包时候声明成已注明的版本。

          <!-- 使用已锁定的版本 -->
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-web</artifactId>
              <version>${spring.version}</version>
          </dependency>
  • 相关阅读:
    qt自定义的串口类判断断开
    ubuntu16.04永久修改有线接口名称(enp0s3->eth0)
    记录一下读过的书
    Qt 主界面卡死
    Mysql5.7及版本以上导入sql提示Incorrect date value: '0000-00-00' for column
    webpack打包css
    ant-design-vue中的a-directory-tree更换图标
    解决php-fpm占用内存过高问题
    centos,解压源代码安装,没有configure文件
    OSS存储上遇到The difference between the request time and the current time is too large
  • 原文地址:https://www.cnblogs.com/xsl1995/p/7678208.html
Copyright © 2011-2022 走看看