我最近从日食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运行项目。
我安装了
这应该与eclipse和m2eclipse无关,并且可选地为了更好的支持 - m2e-wtp。此外,您不需要复制依赖项。以下是一些可能的原因:
我的解决方案是:
Eclipse> Window> Preferences> Maven> Java EE Integration>选中“启用Java EE配置”
我的解决方案是因为web.xml版本不兼容,将其从2.4更改为3.0。
请按照以下步骤尝试清理设置
Right Click Project -> Maven -> Disable Maven Nature
mvn clean install eclipse:eclipse -Dwtpversion=2.0
(此目标只删除.project
,.classpath
和.settings/ files/directories
。您也可以删除这些文件(在项目打开时再次删除)而不是运行mvn eclipse clean.
)'Configure'-> 'Convert to Maven Project'
来完成此操作)你可以尝试的其他事情
1. reimport project into some other workspace
2. resintall eclipse
如果它仍然没有解决你的问题,很可能你可能需要将Jira
提升到eclipse团队。
我这样解决了同样的问题:
war
。Maven>Update Project
。将更新项目而不从部署程序集中删除Maven依赖项;如果缺少Maven依赖项,Maven>Update Project
会自动将其添加到项目部署程序集中
我最近有同样的问题,就像你上面的描述,我得到了这样的方式:
然后调用Maven更新项目,Maven依赖项不会再从Deployment Assembly的视图中消失。
我通过对我的web项目执行以下操作解决了类似的问题:
注意:我在将maven性质添加到我的java项目之后遇到了这个问题,以便将它们用于m2e而不是之前的maven eclipse插件(遗留...)
我在做什么 - 我用我自己的web.xml替换了默认的web.xml文件。
当我替换我的默认web.xml(在创建新的maven web项目时创建)时,Maven Dependencies从Deployment Assembly中消失了。因此,我没有替换,而是将我的内容复制粘贴到原始/默认的web.xml中。
这解决了我的问题。
我的情况如下:我甚至无法为“部署程序集”选择“Maven依赖项”。
我终于可以(!)以这种方式解决它:右击项目 - > Maven - >启用工作区解析
如果有效,请在“部署程序集”(项目属性)中再次注意。
我解决了这个问题如下;
步骤3将在WEB-INF文件夹中生成web.xml文件。然后,您可以将步骤1中保存的内容粘贴到新生成的web.xml文件中。
在此之后,您的maven依赖项将不会从部署程序集中删除。
就我而言,它是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> -->