问题描述
maven项目a(test-admin)中有用到b.jar(test-share.jar),现将maven项目转成动态网站模式(Dynamic Web Module 3.0),准备发到tomcat,发布时候会报错找不到b.jar,而实际上maven到本地仓库里有b.jar。
debug
1、查看a项目点path,发现test-share是以文件夹形式存在,且文件夹为空(正常应该上test-share.jar)。手动将test-share.jar添加到tomcat发布目录下a可以启动,问题就出在test-share。
2、尝试里手动配置a到path,restart eclipse,删除项目-从SVN上重新拉,均未生效。发现eclipse开着的项目里有b项目(test-share),关掉试试,关掉之后a到path会短暂报错,然后再次查看到时候就正常显示b.jar里。再发tomcat就正常启动。
3、再打开b项目,发现a项目path中b又变成空文件夹。
4、解决方法二:将b项目配置到a到deploy path中,也能解决问题。
小结
粗暴的解决办法就是先关闭掉path中引用到的项目(如需编辑引用的项目,编辑好保存后再进行开发,不然还会报错)
解决方法二比较好,将b项目配置到a到deploy path中。
推测可能上maven中开启的本地项目优先级高于本地仓库中同名jar包。