前几天用maven打包了一个war文件,结果放到服务器上运行时报错,说某个class not found,我当时还以为依赖冲突了呢,折腾了一阵之后,把这个war包打开一看,里面少了好几个jar包。
查看了一下持续集成日志,里面有一个warning,说
The POM for xxx is invalid, transitive dependencies (if any) will not be available
所以maven把这几个jar包给排除了。。。
解决方法很简单,把构建服务器上的本地maven库清理了就好了。
感觉maven的设计思路很奇特啊,你把别人的传递依赖都弄没了,还能大模大样的打包成功,让别人在运行时报错。难道不是应该提早发现问题,在build的时候报错么?
希望maven的同志早日解决这个问题。