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

时间:2011-09-08 11:54:38

标签: eclipse svn maven dependencies war

我现在有这个问题了。我尝试了很多失败的东西,我不得不切换到netbeans以便能够开发。但netbeans缺少一些重要的功能,所以我真的需要这个在eclipse中工作。

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

我使用eclipse ganymede运行此配置,但是3周前我在启动服务器时开始获得ClassNotFoundException,我不知道为什么会这样开始。

从那时起,我试图获得新的Eclipse(Java EE)软件包,但无论我怎么做,都会发生这种情况:

  • 我通过运行maven + svn获得eclipse,并将我的tomcat安装添加到eclipse的服务器列表中。
  • 我查看了父项目,其中包括模块。 Eclipse为我提供了一整套项目。
  • 废话开始:我无法将2个web项目添加到tomcat,它告诉我没有项目可以添加(意思是“你没有任何web项目!”)。另外,我不能在Servlet类上选择“Run as - > Run on Server”(“Selection不包含任何可以在服务器上运行的资源”),即使它们明显扩展了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,......)也没有什么区别。 如果您需要我发布任何文件,我将很乐意遵守。

因为这让我在很长一段时间内在夜间保持清醒,所以我会在这一点上给予赏金。 到目前为止。

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

编辑以回答即将出现的问题

  

只是为了检查:从命令行构建项目并手动部署它们确实有效,对吧?

是的,mvn package工作正常,将.war文件复制到tomcat导致工作的应用程序,war文件也包含所有依赖项。

  

当您说“获取新的Eclipse(Java EE)软件包”时,您的意思是说您现在正在使用Eclipse Indigo(3.7)吗?

是。但是我遇到了与3.5相同的问题,eclipse版本的行为没有任何差异。

  

当你说“我得到even with maven + svn running”时,你使用m2eclipse还是使用maven eclipse插件生成eclipse配置?

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

1 个答案:

答案 0 :(得分:4)

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

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

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

希望其中一些会有所帮助。