问题
maven使我们常用的项目管理工具,但是使用maven创建web项目时,默认创建的为servlet2.x的webapp,我们想使用最新的功能更强大,性能更好的servlet3.x的webapp
解决方法
1. 手动修改相关配置(web.xml,引入servlet3.x依赖)
缺点:每次新建项目都要手动修改,因为手动修改了配置文件,容易出各种各样奇怪的问题。
此方法不做介绍,百度一大堆
2. 自定义一个支持servlet3.x的maven模版
原理:在新建maven项目时,maven为我们提供了很多模版,我们新建web项目时,选择的maven-archetype-webapp,就是其中一个模版,只是这个模版支持的servlet2.x,我们只需要自己写一个servlet3.x的maven模版,导入maven,以后即可使用
2.1 生成模版
具体模版不用咱们自己写GitHub上有大神已经给写好下载地址把代码下载下来咱们简单分析一下
先看目录结构
红框框住部分为生成项目目录结构,你可以根据自己的需求修改结构,当然如果不懂maven模版不建议修改
接下来我们看一下最关键的两个配置文件
- web.xml
- pom.xml
web.xml和pom.xml配置文件可根据自己实际需求修改,但是3.1的web.xml,就要对应3.1的servlet jar包
2.2 导入模版
这里只介绍IDEA中导入,eclipse同理
1. 安装maven模版
在项目的根目录下执行 mvn install
安装成功会在你的本地仓库文件夹统计目录下生成archetype-catalog.xml
2. 安装插件导入IDEA
安装成功后在IDEA新建,maven项目并未找到咱们安装的模版,原因是并没有把模版引入IDEA
在IDEA下安装插件maven Archetype Catalogs
重启IDEA,打开安装插件导入上一步生成的xml
再次新建maven项目找到自定义的servlet3模版,新建生成servlet3.x的webapp项目
总结
发现问题,百度出来的大多都是第一种解决方法,每次手动修改,实则治标不治本,解决思路,首先思考maven是怎么自动生成的2.x版本的项目,知道是通过模版生成后,通过自定义一个3.x的模版即可解决这个问题,以后再出servlet4.0 5.0也能快速构建出自己的项目
反思
可以研究一下这个maven的模板,以后需要别的自定义项目,可编写自己的模版,快速生成自定义的maven工程
最后在再给个百度云:1lUgiyBVpSsInkpbf3B01nw