eclipse创建的maven web项目每次update project时导致web deployement assembly中的maven依赖丢失(三种解决方案)

今天在写一个maven web项目时,在pom.xml中添加了新的依赖,然后alt+f5更新了maven项目,结果一运行发现出错了,tomcat找不到我struts2的核心过滤器类了,但是我看了看maven依赖中有struts2的jar。于是打开web项目的目录,发现/WEB-INF/lib包下并没有自动引入maven的依赖。
于是开始在网上找解决方案:

找到的方案一(对我的项目无效)

https://blog.csdn.net/myth_g/article/details/78814899
这个解决方案认为是pom.xml文件中jar属性写成jar了,修改为war即可,但是我看了我的pom文件,发现本来就是war,所以这个方案对我没用。我的应该是出了其它问题。

找到的解决方案二(对我的项目无效)

https://blog.csdn.net/u012383839/article/details/81432294
这个方案认为是web.xml与dynamic web project的版本不同导致的,我看了看我的项目,确实,我的web.xml是复制的别的项目的,版本号是3.1的,但是我的项目在maven转成dynamic webproject时选了3.0的版本。
我以为我发现问题所在了,于是我兴冲冲的将项目目录下
/.settings/org.eclipse.wst.common.project.facet.core.xml文件中的dynamic web project版本改成了3.1。
eclipse创建的maven web项目每次update project时导致web deployement assembly中的maven依赖丢失(三种解决方案)
但是update project后,发现deployment assembly中的maven依赖又没了,好气啊,看来我的还不是这个问题。

找到的最终解决方案(对我的项目有效)

https://cloud.tencent.com/developer/ask/118072
这个方案就比较简单粗暴了,是直接在eclipse的market中下载了一个叫做Maven Integration for Eclipse WTP的插件,并且将pom.xml文件中的war属性修改为war,然后重启eclispe后,这个插件就会自动将maven依赖添加到web deployment assembly中了
eclipse创建的maven web项目每次update project时导致web deployement assembly中的maven依赖丢失(三种解决方案)
eclipse创建的maven web项目每次update project时导致web deployement assembly中的maven依赖丢失(三种解决方案)
原理好像是这个插件会指令WTP将maven依赖发送到服务器目录。

至此,搞了大半天,终于解决了这个问题,记录一下,以免忘记。
同时,希望上面的三种解决方案能为大部分朋友提供一些参考。