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

时间:2015-06-30 20:52:16

标签: java eclipse m2eclipse m2e-wtp

我最近从日食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->更新项目配置“,再次删除Maven依赖项。

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

我已经安装了

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

12 个答案:

答案 0 :(得分:12)

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

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

    <包装和GT;战争< /包装>

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

  • 如果您在eclipse中的服务器上运行项目作为动态Web项目,则应打开项目属性(右键单击>属性)并选择“Deployment Assembly”。单击“添加”,选择“构建路径条目”,然后选择“maven依赖项”。这将指示WTP将maven依赖项发送到服务器目录。

答案 1 :(得分:3)

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

  1. 禁用应用程序的Maven性质:
  2. 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'

    3. 来完成此操作。

      你可以尝试的其他事情

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

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

答案 2 :(得分:2)

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

  1. 打开pom.xml并进行打包war
  2. 右键单击该项目,然后选择Maven>Update Project
  3. 将更新项目而不从部署程序集中删除Maven依赖项;如果缺少Maven依赖项,Maven>Update Project将自动将其添加到项目部署程序集

答案 3 :(得分:1)

我最近遇到了与上述描述相同的问题,并且我按照这种方式工作:

  1. 右键点击项目> Maven>禁用Maven Nature
  2. 右键点击项目>配置>转换为Maven项目
  3. 然后调用Maven更新项目,Maven依赖项将不再从Deployment Assembly的视图中消失。

答案 4 :(得分:1)

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

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

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

答案 5 :(得分:1)

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

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

这解决了我的问题。

答案 6 :(得分:1)

我的情况如下: 我甚至无法选择" Maven Dependencies"用于"部署组装"。

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

再次注意"部署组装" (项目属性),如果有效。

答案 7 :(得分:0)

我解决了这个问题如下;

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

  2. 删除web.xml文件。

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

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

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

答案 8 :(得分: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> -->

答案 9 :(得分:0)

我的解决方法是:

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

答案 10 :(得分:0)

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

答案 11 :(得分:0)

右键单击项目>属性> Maven
取消选中并应用“从Wrokspace项目解析依赖项”。之后,检查“解决Wrokspace项目中的依赖关系”,然后单击“确定”。

enter image description here