出现的问题:
excel导出功能时出现找不到对应poi的类而出现 NoClassDefFoundError
当时的代码环境依赖说明:
在公共模块存在依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
我负责的模块存在依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.10</version>
</dependency>
出现问题的原因:
由于负责的模块依赖公共模块,easyExcel自带依赖于3.17的poi,如果项目其它地方引入了其它版本的poi,并且被依赖,就会导致easyExcel导出失败等一系列问题,主要原因是因为poi版本冲突导致的
解决方式:导出easyExcel的时候排除自身的poi依赖。如下图
<!-- excel工具包 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.10</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
</exclusion>
</exclusions>
</dependency>