1、问题描述
刚搭好一个JavaWeb1项目框架,并且能在tomcat下跑起来;后来技术经理要求把这个项目转为maven管理,我就新建了一个JavaWeb2并且支持Maven的新项目,把对应的dao、service、controller层的代码及相关配置都拷过来,修改了pom.xml的包配置,发布到tomcat下之后报各种错误。大概有NoSuchMethod异常、ImplementClass异常等等,上网查了大多数都是说包冲突。
2、问题解决
确认是包冲突引起的问题,究其原因,发现是自己写pom.xml的时候,包的版本和刚搭好的JavaWeb1引入的jar版本不一样,甚至有些版本号都是从网上抄的。后来发现JavaWeb1的jar包的名称有版本号(jar包下有个META-INF下的MANIFEST.MF文件也有版本号),于是我在JavaWeb2的pom.xml中就按照这些版本号认真的检查了一遍并修改好之后,发现启动没有问题了,而且功能和JavaWeb1的功能也一模一样了。
3、总结
我是按照原本搭好的JavaWeb转为Maven项目的,jar的版本可以参考的修改pom.xml里面的版本。如果你是新建的Maven项目,这个pom.xml里面的jar版本也许会很难查出冲突的问题。因此我想到了一种方法是:可以建一个非maven的web项目,把jar包导入并测试好再转maven项目。