叙述:
正常开发中,不管idea或是eclipse启动web服务,各种百度或是配置一般都能解决问题。这次遇到的问题比较特殊,项目使用maven,但是也使用了本地lib,IDE中是一切正常,不行Add as libs 等操作都能解决。坑就坑在打war包时,本地lib打包一直无法打包,而后面打包进去了也出现启动错误。
IDEA打包war
idea工具打包war其实比较简单的


执行以上操作,target下即可找到war包,maven依赖或是本地依赖都只要添加了,都会被打包到WEB-INF/lib下。
maven打包war
maven打包war与使用工具打包还是不一样了,工具一般比较智能,默认配置都是配好了。而使用maven打包,则需要懂一点maven的配置,否则坑还是蛮多的。
我这虽然使用maven,但主要是使用仓库的依赖,构建编译打包这块一直用的不多。这次正好记录一下。
maven打包前首先要通过编译,本地lib包因为没有通过本地仓库依赖,所以要指定lib的位置。例如我这
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>${project.basedir}\src\main\resources\other\lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
这时 mvn compile 就不会报找不到本地jar包的情况。
编译通过了,也可以打包,但是war里却并没有本地lib中jar,只有仓库中正确添加进去了。
这时同样需要配置maven的war打包配置,如下
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/src/main/resources/other/lib</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
记下一个坑
因为代码也是百度得来的,拷过来直接用,貌似也没问题,打包正常,就是运行是崩了。
天杀的!
原因是本地jar包打包进去了,但是这个jar包被损坏了。所以问题一直没解决,一直在注意是否打包方法错误,编码或是tomcat问题,知道我想去打开这个jar发现包损坏。
原因是多了下图的配置,去掉终于正常。

尊重作者,转载请注明出处!
版权申明:本文版权归作者所有,未经授权,任何单位或个人不得以任何形式转载、摘编或利用其它方式使用本博客内容。作者保留追究相关法律责任的权利。如需使用博客内容,请与作者联系获得授权。感谢对本文的尊重与支持。
免责声明:本网站所载内容仅供参考,不构成任何专业建议。用户基于本网站内容作出的决策,风险自担。对于因使用本网站内容而产生的任何直接或间接损失,本网站不承担任何责任。请用户审慎判断,理性使用。