26

我最近从 eclipse 4.4.2 (Luna) 升级到 4.5 (Mars)。我的动态 Web 项目现在在其部署程序集“项目->属性->部署程序集”中不包含 Maven 依赖项。

我可以手动添加它们(使用“Project->Properties->Deployment assembly->Add->Java Build Path Entries->Maven Dependencies”),但每次我运行“Project->Maven->Update Project Configuration”时,再次删除 Maven 依赖项。

请注意,我使用 Eclipse IDE 中的 Apache Tomcat 服务器运行该项目。

我已经安装

  • m2e 1.6.0.20150526-2032
  • m2e-wtp 1.2.0.20150602-1740
4

12 回答 12

14

这应该与 eclipse 和 m2eclipse 无关,并且可以选择以获得更好的支持 - m2e-wtp。此外,您不需要复制依赖项。以下是一些可能的原因:

  • 您应该调用 mvn 包(或右键单击 > maven > 包)并获取一个 war 文件 - (在 pom 中)必须是 war

    <包装>战争</包装>

  • 您的依赖项应具有默认范围(如果提供或测试它们将不会包含在存档中)

  • 如果您在 Eclipse 中的服务器上将项目作为动态 Web 项目运行,那么您应该打开项目属性(右键单击 > 属性)并选择“部署程序集”。单击“添加”,选择“构建路径条目”,然后选择“maven依赖项”。这将指示 WTP 将 maven 依赖项发送到服务器目录。
于 2015-07-07T06:14:07.803 回答
4

您能按照以下步骤尝试清理设置吗

  1. 禁用应用程序的 Maven 特性:

Right Click Project -> Maven -> Disable Maven Nature

  1. 打开 cmd ,转到项目位置,运行mvn clean install eclipse:eclipse -Dwtpversion=2.0(此目标只是删除.project和。您也可以只删除这些文件(再次在项目打开时)而不是.classpath运行).settings/ files/directoriesmvn eclipse clean.

  2. 重新启用 Maven 自然。(大多数情况下,这可以通过在包资源管理器窗格中右键单击有问题的项目,然后选择来完成'Configure'-> 'Convert to Maven Project'

你可以尝试的其他事情

1. reimport project into some other workspace 
2. resintall eclipse 

如果它仍然没有解决你的问题,很可能你可能需要Jira向 Eclipse 团队提出。

于 2015-07-09T14:19:57.110 回答
2

我以这种方式解决了同样的问题:

  1. 打开 pom.xml 并制作 Packaging war
  2. 右键单击项目并选择Maven>Update Project.

将更新项目而不从部署程序集中删除 Maven 依赖项;如果缺少 Maven 依赖项,Maven>Update Project则会自动将其添加到项目部署程序集中

于 2015-12-30T22:56:14.447 回答
2

我通过对我的网络项目执行以下操作解决了类似的问题:

  • 去除 Maven 性质
  • 清理所有 m2e 生成的文件
  • 添加maven性质
  • alt + F5

注意:在将 maven 性质添加到我的 java 项目以便将它们与 m2e 一起使用而不是以前的 maven eclipse 插件(旧版...)后,我遇到了这个问题

于 2016-05-25T09:58:35.747 回答
1

我在做什么 - 我正在用我自己的 web.xml 替换默认的 web.xml 文件。

在我替换默认 web.xml(在创建新的 Maven Web 项目时创建)的那一刻,Maven 依赖项从部署程序集中消失了。因此,我没有替换,而是将我的内容复制粘贴到原始/默认 web.xml 中。

这解决了我的问题。

于 2016-11-25T11:59:20.730 回答
1

我的情况如下:我什至无法为“部署程序集”选择“Maven 依赖项”。

我终于可以(!)这样解决它:右键单击项目 - > Maven - > 启用工作区分辨率

如果有效,请再次注意“部署程序集”(项目属性)。

于 2018-02-23T20:22:30.923 回答
1

我最近遇到了同样的问题,就像你上面的描述一样,我是这样工作的:

  1. 右键单击项目 > Maven > 禁用 Maven 自然
  2. 右键单击项目 > 配置 > 转换为 Maven 项目

然后调用 Maven 更新项目,Maven 依赖不会再次从 Deployment Assembly 视图中消失。

于 2015-10-22T07:04:29.897 回答
0

我的解决办法是因为web.xml版本不兼容,把它从2.4改成3.0。

于 2019-01-12T02:18:17.400 回答
0

右键单击项目 > 属性 > Maven
取消选中并应用“解决来自 Wrokspace 项目的依赖项”。之后选中“解决来自 Wrokspace 项目的依赖项”并单击“确定”。

在此处输入图像描述

于 2019-03-27T17:33:54.390 回答
0

我解决了这个问题如下;

  1. 复制 web.xml 文件的内容并将其保存在某处以供以后使用。

  2. 删除 web.xml 文件。

  3. 右键单击项目 -> Java EE 工具 -> 生成部署描述符存根

第 3 步将在 WEB-INF 文件夹中生成 web.xml 文件。然后您可以将步骤 1 中保存的内容粘贴到新生成的 web.xml 文件中。

在此之后,您的 Maven 依赖项将不会从部署程序集中删除。

于 2017-03-04T22:36:07.977 回答
0

我的解决方案是:

Eclipse > 窗口 > 首选项 > Maven > Java EE 集成 > 选中“启用 Java EE 配置”

于 2018-07-26T15:25:27.710 回答
0

就我而言,它位于 pom.xmlpluginExecutionFilter的部分中。pluginManagement

删除部分org.apache.maven.plugins:maven-war-plugin消除了 maven 依赖项将从部署程序集中消失的问题,以及手动添加 maven 依赖项后,部署还会安装测试依赖项的问题:

                <!-- Remove to eliminate vanishing maven dependencies
                           <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        org.apache.maven.plugins
                                    </groupId>
                                    <artifactId>
                                        maven-war-plugin
                                    </artifactId>
                                    <versionRange>
                                        [3.0.0,)
                                    </versionRange>
                                    <goals>
                                        <goal>war</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <ignore></ignore>
                                </action>
                            </pluginExecution> -->
于 2017-08-21T20:47:08.243 回答