Eclipse 停止将项目的任何 [maven] 依赖项部署到 tomcat

标签 eclipse svn maven dependencies war

这个问题困扰我好久了。我尝试了很多失败的东西,以至于我不得不切换到 netbeans 才能进行开发。但是 netbeans 缺少一些重要的功能,所以我真的需要它在 eclipse 中工作。

从头开始: 我有一个“父”maven 项目,在我们的 svn 仓库中有几个模块。其中 2 个模块是我需要在 tomcat 服务器中部署的 Web 项目。这些 web 项目有几个依赖项,其中包括父 maven 项目的其他模块。

我在 eclipse ganymede 上运行了这个配置,但 3 周前我开始在启动服务器时遇到 ClassNotFoundException,我不知道为什么会这样。

从那时起我就尝试获取新的 Eclipse (Java EE) 包,但无论我怎么做,结果都是这样:

  • 我使用 maven+svn 运行 eclipse,并将我的 tomcat 安装添加到 eclipse 的服务器列表中。
  • 我检查了父项目,其中包括模块。 Eclipse 为我提供了完整的项目列表。
  • 问题开始了:我无法将 2 个 Web 项目添加到 tomcat,它告诉我无法添加任何项目(意思是“您没有任何 Web 项目!”)。此外,我不能在 Servlet 类上选择“运行方式 -> 在服务器上运行”(“选择不包含任何可以在服务器上运行的资源”),即使它们显然扩展了 HttpServlet。由于我在这上面花了太多时间,我找到了处理这个问题的方法:在项目属性中将项目转换为“分面项目”。
  • 现在我可以将这两个项目添加到 tomcat 服务器
  • 启动服务器时,我得到

    致命:加载 WebappClassLoader 时出错 上下文:/BEWeb 代表:假 存储库: /WEB-INF/类/ ----------> 父类加载器: org.apache.catalina.loader.StandardClassLoader@55ae3b4d de.comp.utils.servlet.SInvokerServlet

  • 此类在列为依赖项的模块之一中

  • 已部署项目的
  • WEB-INF/lib 是空的。根本没有库,maven 和/或 eclipse 没有像 3 周前那样做。

我尝试在 .settings 以及 .project.classpath 中摆弄 eclipse 文件,但结果没有任何用处。 有人能指出我正确的方向吗?如果您需要我,我会从头开始做所有事情,这不会有什么不同,因为我已经做了很多次(使用不同版本的 eclipse、maven、tomcat 等) 如果您需要我发布任何文件,我很乐意遵守。

因为这让我现在有一段时间夜不能寐,所以我会悬赏这个。 谢谢。

================================

编辑以回答接下来的问题

Just to check: building your projects from the command line and deploying them by hand does work, right?

是的,mvn package 工作正常,将该 .war 文件复制到 tomcat 会产生一个工作应用程序,而且 war 文件包含所有依赖项。

When you say "get new Eclipse (Java EE) packages", do you mean you are now using Eclipse Indigo (3.7)?

是的。但我在使用 3.5 时遇到了同样的问题,eclipse 版本的行为没有任何差异。

When you say "I get eclipse with maven+svn running", are you using m2eclipse or have you generated eclipse configuration using maven eclipse plugin?

我安装了 m2e,并使用“右键单击 -> check out 为 Maven 项目”从 svn check out 项目。虽然存储库中没有特定于 eclipse 的文件,但它们似乎是在结帐时生成的。 当我使用 mvn eclipse:eclipse,然后关闭+重新打开项目时,我无法将它们添加到 tomcat 服务器(“没有可以从服务器添加或删除的资源”),这意味着Eclipse 不会将它们识别为 Web 项目。

最佳答案

首先:maven-eclipse-plugin不要和m2e/m2eclipse一起使用,两者不兼容。 m2e 应该能够导入您的 Maven 项目并按照 Eclipse 的预期进行设置。

您是否为 m2e 安装了 WTP 附加组件?这blog post可能值得一读。 如果您的任何 pom.xml 文件调用任何特定插件(例如用于代码生成),您可能需要相应的 m2e 附加组件。这wiki post可能会让您了解原因。

您可能会考虑的另一种尝试是设置基于 Helios 的环境。不过,请检查您可能需要的所有插件是否仍然可用。

关于Eclipse 停止将项目的任何 [maven] 依赖项部署到 tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7347613/

相关文章:

java - 如何将Gradle项目编译为可以在Android应用程序中使用的jar文件

svn - 将 .svn 文件夹更改为 Tortoise SVN 中的另一个位置

svn - 如何在cmd批处理中的文本中使用换行符?

svn - 颠覆 : Can multiple copy operations be done in a single revision?

java - 如何在settings.xml中的配置文件中使用maven插件

java - 无法解决 Eclipse 中的 import javax.swing.* 错误

eclipse - Eclipse 登录需要哪个用户才能推送到 Github?

java - 代码从 jar 里跳出来运行?是什么原因造成的?

java - Java 1.6 的 Ant Java 任务

maven - 在远程服务器上部署之前如何更改一些 java 变量?