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



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

我遇到了Tomcat看不到Maven依赖项的经典问题。在Helios中,解决方法是通过以下方式将Maven依赖项添加到部署组件中:项目属性->部署程序集->添加"Java构建路径项"-> Maven依赖项

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

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

  • 重新安装Eclipse Indigo (Mac)
  • 新鲜工作区
  • m2e WTP集成通过Eclipse Marketplace安装
  • 创建新的Maven项目
  • 添加一些maven依赖项,加上一些代码来使用它们
  • 将项目转换为面形
  • 添加'Dynamic Web Module' facet
  • Maven> Update Project Configuration
  • 添加到Tomcat 6服务器
  • 在服务器上运行
在这一点上,我看到get ClassNotFoundException与我丢失的依赖项相关。如果我运行'mvn war:war',并将组装好的'WEB-INF/lib'目录包含在项目的部署程序集中,那么当然可以正确地选择依赖项-对于快速修复来说很好,但不是理想的。

我所读到的与类似问题相关的大多数问题都归结为缺少WTP集成模块,但这似乎不是我的问题。

我做错了什么吗?

看起来new maven project的包装类型是jar。如果是这样,你可以将其更改为war并尝试。

这是另一个解决方案:修复了.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>

右键单击项目

  1. 选择部署程序集>单击添加

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

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

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

在server选项卡中再次发布项目

另一个与WTP tomcat相关的问题(如果打包已经是WAR了,但是库没有部署)在Eclipse WTP部署tomcat服务器依赖项的奇怪行为

中得到了回答/讨论

最新更新