使用eclipse创建maven web项目的方式有许多种,下面说说常用的三种创建方式以及各自的弊端、
quickstart创建方式
-点击new→project→other(搜索maven),选择maven Project。

-选择next

-继续选择next

-这里我们选择maven-archetype-quickstart,点击next

-填写Group Id 和 Artifact Id。填完会自动生成package(可以为空)

-点击finish完成创建。
此方式创建的项目结构如下:

从项目结构可以看出,这种创建方式主要用于java项目的创建。不支持web模块。
webapp创建方式
-步骤2-1、2-2与quickstart方式1-1、1-2一致。
-选择maven-archetype-webapp,点击next

-填写Group Id 和 Artifact Id。填完会自动生成package(可以为空),点击finish

webapp方式创建的项目结构如下:

此方式创建的项目java模块包结构不完整,但包含完整的web模块包结构。
simple project创建方式
-步骤2-1依旧一样。
-在new maven project时勾选上create a simple project

-点击next,填写Group Id 和 Artifact Id。packaging方式选择war方式,点击finish

simple project方式项目结构如下:

可以看到项目抱一个错,查看pom提示缺少web.xml。再看webapp目录为空。显然这种方式的弊端就是缺少web模块内容。
结论:三种方式各有好处和弊端,可以根据需要选择。我通常使用simple project方式创建。缺少的webapp内容只需要从webapp方式创建的项目中copy一份即可。
完整版项目目录结构如下:

注意:
1.构建过程中省略了一些依赖的添加(servlet-api),编译环境的设置,报错自行排查即可。
2.webapp方式创建方式中创建的web.xml默认jsp支持版本是2.3
而2.3默认是不支持EL表达式的(2.4以后支持),需要手动设置<%@page isELIgnored="false" %>
也可以在web.xml中分组配置(可自行百度)
更好的方式是将jsp版本提升。具体做法参考[eclipse如何修改动态web版本为3.0](https://www.jianshu.com/p/feb8e4253713)
网友评论