9

我正在使用 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 Deployment 目录中我看到myApplication-common-widgetset-0.0.11-SNAPSHOT.jar 奇怪的是 Tomcat lib 下的文件有 1kb 大,而我的工作空间中的文件库是~22Mb。

我试图将工作区 jar 复制到 Tomcat lib 文件夹,一切正常并作为魅力运行。

更新:

  • 当我mvn tomcat:run从工作区中的命令行运行时,一切正常。
  • 我“重新安装”了 Eclipse(到 Kepler,擦除了所有内容,包括工作区和主文件夹)和 Tomcat 7。我仍然有同样的问题。
  • 大学尝试从 SVN 获取我的项目并使用 Eclipse 和 IntelliJ + Tomcat 7 成功运行它

可能发生了什么?为什么 Eclipse 嵌入式 Tomcat 没有从目标目录中获取所有内容?

4

1 回答 1

0

我认为您面临的问题是 eclipse 并没有严格遵守 Maven 依赖项的现实。

这与 eclipse 在 tomcat 上构建、部署和运行时不遵循 maven 的事实有关。Eclipse 将使用您的本地工作空间设置,因此有时会引入与 maven 不同的依赖关系树。

从您提供的信息来看,似乎该工作区 lib 文件是来自 maven 存储库的文件,而嵌入式 tomcat 部署目录中的文件是 eclipse 构建的 jar - 我在这里猜测。

如果该 jar 来自工作区项目,您可以尝试关闭项目并让 e​​clipse 从 maven 中找到 jar。

Eclipse 和 Maven 的这个问题相当模糊,因此很难弄清楚在依赖项方面到底发生了什么,所以抱歉,我无法提供更多帮助

于 2014-12-08T21:57:15.443 回答