记录思路及出现的错误。
1. new maven project
在此页面选择web-app,其他页面默认即可,输入groupId和artifactId(项目名,这里以输入HelloSpringMvc为例)。
2. 生成HelloSpringMvc项目,开始配置
(1)生成项目后,可能项目会在index.jsp页面报错,也有可能不报错,我也不知道为什么。当错误出现时,会提示:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
,这个问题本质上是缺少"javax.servlet.http.HttpServlet",而这个东西是应该Tomcat容器提供。如果是SpringBoot项目,在修改完pom.xml文件后,由于SpringBoot内置Tomcat容器,问题即可自动消失。这里我们是建的spring-mvc项目,有两种解决方法:
- 在pom.xml中添加jar包依赖:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
- 配置tomcat
Build Path—>Add library—>Server Runtime,选择本机所安装的tomcat。
(2)修改web版本和jdk版本
因为eclipse默认新建的是2.3版本的web,但这个版本比较老了,而且2.3版本默认是不支持el表达式的。所以我们这里修改为3.1版本的。
步骤: - 打开Projects facets,取消勾选Dynamic Web Module,重新选择jdk版本为1.8---->Apply;
- 勾选Dynamic Web Module 3.1,点击下图中的:further configuration…,出现一个新的页面,勾选generate web.xml deployment descriptor,生成当前3.1版本的web.xml。
- 将新生成的webContent文件夹下的META-INF复制-粘贴至src\main\webapp文件夹下
- 复制webContent\WEB-INF文件夹下的web.xml的内容,粘贴至src\main\webapp\WEB-INF\web.xml中。
且要修改jdk版本,以和本机安装的jdk匹配(三个地方的jdk版本要一致preferences–>java–>compiler,properties–>java compiler, properties–>Projects Facets)。
步骤:
- 以上三处的jdk版本修改
- pom.xml中添加:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
(3)完善maven目录结构
- 项目名右键,点击 build path–>Configure build path–>Source,会看到提示哪个文件夹缺失,缺失的在所提示的目录下新建folder即可。一般来说,需要在src\main下新建java文件夹,在src文件夹下新建test文件夹。
- 修改Deployment Assembly 属性,删除部署时不需要包含的目录。最终的结果如图所示。
3.
重要的一步:maven -> update project。可以看到项目不报错了,Spring mvc demo初始配置完成,接下来就需要配置spring mvc框架了。
4. windows的意外
前三步在mac上完成的,结果在windows系统上第一步就出错,当时忽略了此错误(maven compiler plugin:3.1:testCompile error...
),所有步骤结束后,update出现错误Cannot nest 'webapp/src/main/resources/' inside 'webapp/src/main' To enable the nesting exclude
。
后来发现是在第三步出现了问题,我并没有把build path–>Configure build path–>Source缺失的文件夹加入进去。
填坑参考:
https://blog.csdn.net/feinifi/article/details/86512782
- 在build path–>Configure build path–>Source下remove 文件夹***/src/main
- 点击Add Folder,选中java和resources。
别的报错
web.xml is missing and is set to true
参考:https://blog.csdn.net/sinat_22911279/article/details/77454139
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
spring的相关配置见下一篇
(点击Help–>Install–>new software,然后用 http://dist.springsource.com/release/TOOLS/update/e4.X/ (X表示Eclipse的版本号))