记maven打包加入外部jar后tomcat运行失败问题

环境:maven 3.8.0 .tomcat 8.5.30

因为项目需要额外的引用外部jar,需要打包到war中。

所以在pom中加入了

<webResources>
<resource>
<directory>
${project.basedir}/src/main/resources/lib
</directory>
<targetPath>WEB-INF/lib</targetPath>
    <filtering>true</filtering>
<includes>
<include>*.jar</include>
</includes>
</resource>
</webResources>
打包后war包中存在需要的jar了。
ok 放到tomcat中运行。发现运行报错:
error in opening zip file ....

因为是新加入这段后出现的问题。所以先把这段去掉,然后启动报缺失jar后,手动将需要的jar添加到WEB-INF/lib中后。发现一切正常。
至此问题确定在这段pom内容中了。
一顿操作,发现去除
<filtering>true</filtering>
后没有问题了。 
具体原因是因为开启filtering功能后,会破坏有二进制内容的文件。所以在tomcat 读取里面的jar的时候出现这个错误
具体学习filtering的内容可以去看http://t.zoukankan.com/atai-p-6933966.html
里面详细的讲了profile和filtering的作用与坑位。



posted @ 2021-07-06 10:49  沙师弟demo  阅读(277)  评论(0编辑  收藏  举报