部署程序集中缺少maven依赖项

问题描述 投票:25回答:12

我最近从日食4.4.2(Luna)升级到4.5(火星)。我的动态Web项目现在不在其部署程序集“Project-> Properties-> Deployment assembly”中包含Maven依赖项。

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

请注意,我使用Eclipse IDE中的Apache Tomcat Server运行项目。

我安装了

  • m2e 1.6.0.20150526-2032
  • m2e-wtp 1.2.0.20150602-1740
java eclipse m2eclipse m2e-wtp
12个回答
12
投票

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

  • 你应该调用mvn包(或右键单击> maven>包)并获取war文件 - (在pom中)必须是war <包装>战</包装>
  • 您的依赖项应该是默认范围(如果提供或测试它们将不会包含在存档中)
  • 如果您在eclipse中的服务器上运行项目作为动态Web项目,则应打开项目属性(右键单击>属性)并选择“部署程序集”。单击“添加”,选择“构建路径条目”,然后选择“maven依赖项”。这将指示WTP将maven依赖项发送到服务器目录。

0
投票

我的解决方案是:

Eclipse> Window> Preferences> Maven> Java EE Integration>选中“启用Java EE配置”


0
投票

我的解决方案是因为web.xml版本不兼容,将其从2.4更改为3.0。


0
投票

右键单击Project> Properites> Maven 取消选中并应用“从Workspace项目中解析依赖项”。之后,选中“从Workspace项目中解析依赖项”,然后单击“确定”。

enter image description here


3
投票

请按照以下步骤尝试清理设置

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

Right Click Project -> Maven -> Disable Maven Nature
  1. 打开cmd,转到项目位置,运行mvn clean install eclipse:eclipse -Dwtpversion=2.0(此目标只删除.project.classpath.settings/ files/directories。您也可以删除这些文件(在项目打开时再次删除)而不是运行mvn eclipse clean.
  2. 重新启用maven性质。 (大多数情况下,可以通过在包资源管理器窗格中右键单击相关项目,然后选择'Configure'-> 'Convert to Maven Project'来完成此操作)

你可以尝试的其他事情

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

如果它仍然没有解决你的问题,很可能你可能需要将Jira提升到eclipse团队。


2
投票

我这样解决了同样的问题:

  1. 打开pom.xml并制作包装war
  2. 右键单击该项目,然后选择Maven>Update Project

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


1
投票

我最近有同样的问题,就像你上面的描述,我得到了这样的方式:

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

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


1
投票

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

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

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


1
投票

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

当我替换我的默认web.xml(在创建新的maven web项目时创建)时,Maven Dependencies从Deployment Assembly中消失了。因此,我没有替换,而是将我的内容复制粘贴到原始/默认的web.xml中。

这解决了我的问题。


1
投票

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

我终于可以(!)以这种方式解决它:右击项目 - > Maven - >启用工作区解析

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


0
投票

我解决了这个问题如下;

  1. 复制web.xml文件的内容并将其保存在某处以供以后使用。
  2. 删除web.xml文件。
  3. 右键单击项目 - > Java EE Tools - > Generate Deployment Descriptor Stub

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

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


0
投票

就我而言,它是pom.xml中pluginExecutionFilter部分的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> -->
© www.soinside.com 2019 - 2024. All rights reserved.