我最近从日食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
10 回答
这应该与eclipse和m2eclipse无关,并且可选地为了更好的支持 - m2e-wtp . 此外,您不需要复制依赖项 . 以下是一些可能的原因:
<包装>战</包装>
您的依赖项应该是默认范围(如果提供或测试它们将不包含在存档中)
如果您在eclipse中的服务器上运行项目作为动态Web项目,则应打开项目属性(右键单击>属性)并选择"Deployment Assembly" . 单击"add",选择"build path entries",然后选择"maven dependencies" . 这将指示WTP将maven依赖项发送到服务器目录 .
请按照以下步骤尝试清理设置
打开cmd,转到项目位置,运行
mvn clean install eclipse:eclipse -Dwtpversion=2.0
(此目标只删除.project
,.classpath
和.settings/ files/directories
. 您也可以删除这些文件(在项目打开时再次删除)而不是运行mvn eclipse clean.
)重新启用maven性质 . (大多数情况下,可以通过在包浏览器窗格中右键单击相关项目,然后选择
'Configure'-> 'Convert to Maven Project'
来完成此操作)你可以尝试的其他事情
如果它仍然没有解决你的问题,很可能你可能需要将
Jira
提升到eclipse团队 .我这样解决了同样的问题:
打开pom.xml并进行包装
war
.右键单击该项目,然后选择
Maven>Update Project
.将更新项目而不从部署程序集中删除Maven依赖项;如果缺少Maven依赖项,
Maven>Update Project
将自动将其添加到项目部署程序集中我最近有同样的问题,就像你上面的描述,我得到了这样的方式:
右键单击项目> Maven>禁用Maven Nature
右键单击项目>配置>转换为Maven项目
然后调用Maven更新项目,Maven依赖项不会再从Deployment Assembly的视图中消失 .
我在做什么 - 我用我自己的web.xml替换了默认的web.xml文件 .
当我替换我的默认web.xml(在创建新的maven web项目时创建)时,Maven Dependencies从Deployment Assembly中消失了 . 因此,我没有替换,而是将我的内容复制粘贴到原始/默认的web.xml中 .
这解决了我的问题 .
我通过对我的web项目执行以下操作解决了类似的问题:
删除maven性质
清理所有m2e生成的文件
添加maven性质
alt F5
注意:我在将maven性质添加到我的java项目之后遇到了这个问题,以便将它们用于m2e而不是之前的maven eclipse插件(遗留...)
我解决了这个问题如下;
复制web.xml文件的内容并将其保存在某处以备将来使用 .
删除web.xml文件 .
右键单击项目 - > Java EE工具 - >生成部署描述符存根
步骤3将在WEB-INF文件夹中生成web.xml文件 . 然后,您可以将步骤1中保存的内容粘贴到新生成的web.xml文件中 .
在此之后,您的maven依赖项将不会从部署程序集中删除 .
就我而言,它是pom.xml中
pluginManagement
部分的pluginExecutionFilter
.删除
org.apache.maven.plugins:maven-war-plugin
的部分消除了将从部署程序集中消失的maven依赖项的问题,以及在手动添加maven依赖项之后,部署还将安装测试依赖项的问题:我的情况如下:我甚至无法为“部署程序集”选择“Maven依赖项” .
我终于可以(!)以这种方式解决它:右击项目 - > Maven - >启用工作区解析
如果有效的话,请在“部署组装”(项目属性)中再次注意 .
我的解决方案是:
Eclipse> Window> Preferences> Maven> Java EE Integration>选中“启用Java EE配置”