Eclipse 3.7 / Indigo m2e WTP集成依赖问题

时间:2011-08-18 17:43:10

标签: eclipse maven eclipse-wtp m2e

我刚刚从Helios切换到Eclipse Indigo,尝试使用WTP在Tomcat 6上运行支持Maven的Web项目时,我遇到了一些麻烦。

我遇到了Tomcat没有看到Maven依赖项的经典问题。在Helios中,解决方法是通过以下方式将Maven依赖项添加到Deployment Assembly: 项目属性 - >部署组件 - >添加“Java Build Path Entries” - > Maven依赖

不幸的是,没有列出'Java Build Path Entries'选项,只列出'Folder'和'Project'。我不确定这是故意的,还是我的设置有问题。

为了消除外部因素,我使用以下设置:

  • Eclipse Indigo(Mac)的全新安装
  • 新鲜工作区
  • m2e通过Eclipse Marketplace安装的WTP集成
  • 创建新的Maven项目
  • 添加一些maven依赖项,以及一些使用它们的代码
  • 将项目转换为分面形式
  • 添加'动态网络模块'方面
  • Maven>更新项目配置
  • 添加到Tomcat 6服务器
  • 在服务器上运行

此时,我看到与我缺少的依赖项有关的ClassNotFoundException。 如果我运行'mvn war:war'并在项目的部署程序集中包含已组装的'WEB-INF / lib'目录,那么当然可以正确地选择依赖项 - 对于快速修复很好,但不理想。

我读到的与类似问题相关的大部分问题都归结为缺少WTP集成模块,但这对我来说似乎不是问题。

我做错了吗?

4 个答案:

答案 0 :(得分:3)

new maven project的包装类型似乎是jar。如果是这样,您可以将其更改为war并尝试。

答案 1 :(得分:1)

这是另一种解决方案: 修复.classpath文件

    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
           <attributes>
-                   <attribute name="org.eclipse.jst.component.nondependency" value=""/>
+                   <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
            </attributes>
    </classpathentry>

答案 2 :(得分:1)

右键点击项目

  1. 选择部署程序集&gt;单击添加

  2. 从弹出窗口中选择Java build Path Entries,单击Next

  3. 使用Ctrl和鼠标选择所有显示的lib

  4. 之后,您将看到.classpath文件中的更改。

    在服务器标签中再次发布您的项目。

答案 3 :(得分:0)

Strange behavior of Eclipse WTP deployment of dependencies in Tomcat server

中回答/讨论了另一个与WTP tomcat相关的问题(如果打包已经是WAR,但未部署lib)