@(环境配置)
摘要
这篇主要是记录自己使用 sts 使用maven搭建 springmvc整合mybatis项目过程和踩过的一些坑:
- 项目目录结构问题
- Dynamic Web2.3 和 Dynamic Web3.0 兼容问题
- 各种文件存放目录问题
使用sts创建 maven项目
选择 webapp 项目:
填写项目信息:
创建后目录如下:
真是有点坑啊,刚刚创建的最基本的maven项目,直接就报错,而且大家可以看到,项目目录是又问题的,现在我们来解决下面两个问题:
项目目录结构问题
这个问题很好解决,主要是因为 jdk 导致的,我们可以右键项目->build path-> configure build path
编辑项目使用的jdk环境为自己安装的jdk环境,我这里安装的是 java8.0, 所以选择 java1.8.
然后 finish -> applay 之后,可以看到项目目录结构正常了:
解决错误
错误是因为没有引入包导致的,我们可以直接引入 servlet 的包就可以解决:
在 pom.xml 文件中引入 dependency, 解决问题
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
Web2.3 转 Web3.0 问题
这个问题的来源主要是因为我的web.xml
默认是 2.3的,但是现在基本上都使用 3.0 的配置了,但是 sts创建的基本webapp还是 2.3,就比较坑爹了。网上看了很多方法,需要修改各种配置文件,太过于麻烦,这里提供一个简单的方法:
项目属性 -> project facets:
可以看到当前状态是 web 2.3 以及 java 1.5:
- 先将 java1.5 修改为 自己安装的 jdk 版本,我这里是java1.8,可直接修改
- 但是如果此时你直接修改 Dynamic web module 为 3.0 的话,会报错:
所以我们先将它 取消勾选,点击ok,
然后再次进到这里,勾选它:
此时可以直接点击OK,也可以选择下面的further configuration avaliable
:
- 可以保持默认,然后就会创建WebContent 目录,以及勾选 web.xml 文件。
-
我这里提供另外一种方法,将 WebContent 修改为:
src/main/webapp
,大家可能就明白了,这个为了兼容 2.3 的配置文件,这样我就不需要删除原来的配置文件了。
两种方法都可以,我选择的是后者。
修改到这里,项目居然有错:
看一下 probleams:
是因为 web.xml
下的配置还是2.3,这里直接修改为:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID"
version="3.0" >
<display-name>Archetype Created Web Application</display-name>
</web-app>
搞定。
然后 alt+F5 更新项目,又出错了:
还记得刚刚开始我们修改自己的项目jdk为1.8,但是这里为什么还是1.5呢?
我们需要再在 pom.xml
文件中添加 一个 plugin:
<build>
<finalName>spring-mybatis</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
然后 alt+F5 更新项目,问题终于解决完了:
最后是关于文件存放目录的问题
这里直接截个图:
需要说明的是,在maven打包过程中,会将所有的这些文件都打到war包中,包括 web.xml 等一些文件。
我这里想强调的是,在 web3.0项目中,mapping文件夹不能再存放在 src/main/java 下, src/main/java 下只会把 java文件打包,而在2.3中,所有 src/main/java 下的文件,包括配置文件,都会被打包,这点需要注意。 所以我们需要将 mapping 文件夹放到 resources 目录下。
代码下载:
其他的没什么好说的了,大家可以在网上搜得到,下面再提供我项目的最基本设置,供大家参考: