现在有非常多的项目都用maven来管理jar包、甚至用来打包的也不少,但是用maven来打包时会有点小问题,下面来总结一下,个人在使用maven打包时遇到的问题以及解决方法。
1.编译问题
问题: 在编译.java文件生成.class文件的时候,首先要解码.java文件存储的字节流,这需要我们正确指定编码字符流生成该字节流过程中使用的编码方案,否则会出现意想不到的错误。例如,在解码阶段使用的是GBK的方式,但是在编译阶段使用的是UTF-8的方式,这样的话,会出问题。
解决办法:使用maven-compiler-plugin插件去指定解码时的编码方案。具体配置可以参照: Maven中配置maven-compiler-plugin插件
2.测试问题
问题:现在的项目基本上都有单元测试,但是如果使用默认的单元测试的实现方案,很多功能就实现不了。例如:需要在maven打包时,不运行测试用例;测试时,我只测试“测试用例1”、“测试用例2”但不测试“测试用例3”。这些比较常用的场景就实现不了。
解决办法:使用maven-surefire-plugin插件自定义单元测试的实现方案。具体配置可以参照:maven-surefire-plugin自定义配置
3.非.java打包问题
问题: 使用maven打包的时候,maven只会把.java编译出来的.class文件打到相应的目录,但是其他文件,例如是xml、属性文件等都不会打到相应的目录下
解决办法:配置resources或者插件的方式把指定的文件放到war包中。具体配置可以参照:maven资源文件的相关配置