• 通过修改包名解决引用easyExcel的poi版本冲突问题(转载)


    由于业务需要,引入easyExcel。easyExcel最低依赖版本是3.17,系统中已经存在3.9版本,排除依赖有些类无法找到,导致jar包冲突无法共存。寻求解决方案时,实践可通过修改jar包路径达到目的。在此对过程做一下记录。

    资源下载:
    jarjar下载地址
    easyExcel仓库

    一、重新打包poi

    1.准备好需要的资源

    2.创建rule.txt

    3.rule.txt中写入文本

    rule org.apache.poi.**  com.customize.poi.@1

    3.验证能否修改包名

    3.17可以忽略,实践通过,详细用法可自行研究

    java -jar jarjar-1.3.jar strings  poi-3.17.jar

    4.重新打包

    自行修改规则

    java -jar jarjar-1.3.jar process rule.txt poi-3.17.jar customize-poi-3.17.jar
    java -jar jarjar-1.3.jar process rule.txt poi-ooxml-3.17.jar customize-poi-ooxml-3.17.jar
    java -jar jarjar-1.3.jar process rule.txt poi-ooxml-schemas-3.17.jar customize-poi-schemas-3.17.jar

    生成新的jar包

    5.打包到本地仓库

    mvn install:install-file -Dfile=customize-poi-3.17.jar -DgroupId=com.customize -DartifactId=poi -Dversion=3.17 -Dpackaging=jar
    
    mvn install:install-file -Dfile=customize-poi-ooxml-3.17.jar -DgroupId=com.customize -DartifactId=poi-ooxml -Dversion=3.17 -Dpackaging=jar
    
    mvn install:install-file -Dfile=customize-poi-schemas-3.17.jar -DgroupId=com.customize -DartifactId=poi-ooxml-schemas -Dversion=3.17 -Dpackaging=jar

    打包后

    二、重新编译easyExcel

    1.下载easyExcel源码

    注意easyExcel版本,导入IDE(笔者使用IDEA)

     或者

    git clone https://github.com/alibaba/easyexcel.git
    git checkout -b dev2.2.6 v2.2.6

    2.修改pom文件中poi依赖

    <dependency>
       <groupId>com.customize</groupId>
       <artifactId>poi</artifactId>
       <version>3.17</version>
    </dependency>
    
    <dependency>
       <groupId>com.customize</groupId>
       <artifactId>poi-ooxml</artifactId>
       <version>3.17</version>
    </dependency>
    
    <dependency>
       <groupId>com.customize</groupId>
       <artifactId>poi-ooxml-schemas</artifactId>
       <version>3.17</version>
    </dependency>

    修改项目坐标

    <groupId>com.customize</groupId>
     <artifactId>easyexcel</artifactId>
     <version>2.2.6</version>
     <packaging>jar</packaging>
     <name>easyexcel</name>

    3.全局替换import

    4.编译

    mvn clean install -Dmaven.test.skip=true 

    编译失败

    加入依赖

    <dependency>
        <groupId>org.apache.xmlbeans</groupId>
        <artifactId>xmlbeans</artifactId>
        <version>2.3.0</version>
    </dependency>

    重新编译

    三.使用

    1.项目中添加依赖

    此时easyExcel依赖为修改后的,可传至私服/安装到本地仓库

    <dependency>
          <groupId>com.customize</groupId>
          <artifactId>easyexcel</artifactId>
          <version>2.2.6</version>
      </dependency>

    依赖的pom

    <dependency>
         <groupId>com.customize</groupId>
         <artifactId>poi</artifactId>
         <version>3.17</version>
     </dependency>
    
     <dependency>
         <groupId>com.customize</groupId>
         <artifactId>poi-ooxml</artifactId>
         <version>3.17</version>
     </dependency>
    
     <dependency>
         <groupId>com.customize</groupId>
         <artifactId>poi-ooxml-schemas</artifactId>
         <version>3.17</version>
     </dependency>

    其余依赖(按需添加,可能已经存在,参考easyexcel原pom文件)

    <dependency>
         <groupId>cglib</groupId>
         <artifactId>cglib</artifactId>
         <version>3.1</version>
     </dependency>
    <dependency>
         <groupId>org.ehcache</groupId>
         <artifactId>ehcache</artifactId>
         <version>3.4.0</version>
     </dependency>

    转载地址:https://blog.csdn.net/u012399690/article/details/109511257

  • 相关阅读:
    C# 谈谈代码重构
    收藏.NET 技术社区
    步步为营 .NET三层架构解析 四、Model设计(四种设计方式)
    C# 谈谈abstract用法 和一个简单abstract factory
    步步为营 .NET三层架构解析 一、什么是三层架构
    用户登陆的验证码的制作
    控制部分字体的颜色
    回发或回调参数无效。在配置中使用 <pages enableEventValidation= "true "/> 或在页面中使用 <%@ Page EnableEventValidation= "true " %> 启用了事件验证
    实习记2
    sniffer攻击
  • 原文地址:https://www.cnblogs.com/yinliang/p/16012599.html
Copyright © 2020-2023  润新知