最近尝试用maven-war-plugin插件打war包,但工程部署到服务器时,发现运行到dao层时老是报错(咱们公司dao层使用mybatis框架管理)。html
几经周折最后发现是打war包时 mybatis mapper的配置文件maven没有打进去。了解了下maven的生命周期。java
生命周期阶段 | 目标 |
process-resources | resources:resources |
compile | compiler:compile |
process-test-resources | resources:testResources |
test-compile | compiler:testCompile |
test | surefire:test |
package | war:war |
install | install:install |
deploy | deploy:deploy |
也就是说默认状况下,maven仅仅只会把src/main/resources下的全部配置文件以及src/main/java下的全部class文件打包或发布到 target\classes下面,而个人 mybatis mapper的配置文件都是放置在src/main/java的子目录下,因此打出来的war包固然会有问题。服务器
好吧,问题缘由都找到了,接下来就是怎样解决了,其实解决也很简单只要在pom.xml文件中添加以下配置便可:mybatis
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build>
maven update 下从新打war包,maven就会将src/main/java下的xml文件随同java编译后的class文件一同copy到相应的class目录,OK问题解决,继续撸码。app