maven项目在加入操作excel的包(poi-ooxml-schemas-xxx.jar)后出错,myeclipse tomcat add直接没有该项目

前言

昨天小伙伴让我晚上回宿舍的时候路过他们宿舍给他看看项目BUG,等到看到信息的时候就已经上床了,今天中午起来又忘了,还好晚上记起来了。

正文

一个普通的maven项目,myeclipse里边的server->tomcat->Add项目,直接添加不了该项目,删除完操作excel的依赖后就可以了。

excel的依赖如下:

 <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>${poi.version}</version>
 </dependency>

试了一个不算办法的办法,先add到tomcat项目,再添加该依赖,tomcat直接开启不了,直接报update什么玩意出错,详情里边直接是java.lang.IndexOutOfBoundsException

由于我也没弄过excel,一时也没什么头绪。

此时小伙伴说了一句关键的话,在IDEA下正常,在Myeclipse下就报这个错。

然后我就问他:

  1. 源码是一份的吗?
  2. maven仓库是一个吗?。(后来发现不是一个仓库)
  3. 运行的是同一个tomcat吗?不是。(这个不是原因)

然后就试了试在同一个tomcat下运行,发现IDEA下的war包丢到tomcat是不报错的。

然后就陷入了思考:明明是同一份源码,同一个maven仓库,同一个tomcat下运行,按理说不应该一个有问题一个没问题啊。

最后没办法了,只能把打包后的两个war包进行文件对比:

左边是出错的myeclipse下的项目

右图是正常可以运行的,左图报错。

maven项目在加入操作excel的包(poi-ooxml-schemas-xxx.jar)后出错,myeclipse tomcat add直接没有该项目

对比完发现他的IDEA和MyEclipse用的不是一个maven,仓库地址也是不一样的(他没设置好),按理说仓库应该是不会出什么大问题的,但是我发现两边相同的jar包的大小是不一样的。

右图是正常可以运行的,左图报错。

maven项目在加入操作excel的包(poi-ooxml-schemas-xxx.jar)后出错,myeclipse tomcat add直接没有该项目

更换成右边的就好了。