我正在使用Eclipse Juno,Tomcat 7和Maven 3开发一个Web项目,并遇到了一个奇怪的问题。
我有一个单独的项目,我编译了一些东西,我在我的web项目中选择了jar作为依赖项。所以,最终结果是一个.war。 现在,当我在Eclipse中的嵌入式Tomcat中运行此战争并点击浏览器上的刷新按钮时,Tomcat说它无法在该jar中找到路径。
在工作区 WEB-INF / lib 文件夹中,我找到 myApplication-common-widgetset-0.0.11-20130926.124257-7.jar
在 wtpwebapps / myApplication / WEB-INF / lib 下的Tomcat部署目录中,我看到 myApplication-common-widgetset-0.0.11-SNAPSHOT.jar 奇怪的是Tomcat lib下的文件大1kb,我工作区lib中的文件大约是22Mb。
我尝试将工作区jar复制到Tomcat lib文件夹,一切正常并作为魅力运行。
更新
mvn tomcat:run
时,一切正常。可能发生了什么?为什么Eclipse嵌入式Tomcat无法从目标目录中获取所有内容?
答案 0 :(得分:0)
我认为你面临的问题是eclipse没有严格遵守maven依赖的现实。
这与在Eclipse上构建,部署和运行时eclipse不遵从maven的事实有关。 Eclipse将使用您的本地工作空间设置,因此有时会引入与maven不同的依赖关系树。
根据您提供的信息,好像工作区lib文件来自maven存储库,而嵌入式tomcat部署目录中的文件是eclipse构建的jar文件 - 我在这里猜测。
如果那个jar来自工作区项目,你可以尝试关闭项目并让eclipse从maven中找到jar。
Eclipse和Maven的这个问题相当模糊,所以很难弄清楚依赖关系到底发生了什么,很抱歉我无法提供更多的帮助