最近项目一直报错,看的极度的不爽,于是找了很长时间的解决方案。
先说一下环境Spring + SpringMVC + MAVEN + jdk 1.8 + servlet 3.1
由于是web 项目,这里选用了 servlet 3.1 的jar 包,在pom 中引入
<properties>
<standard.version>1.1.2</standard.version>
<jstl.version>1.2</jstl.version>
<servlet-api.verison>3.1.0</servlet-api.verison>
<jsp-api.version>2.2</jsp-api.version>
</properties>
<dependencies>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>${standard.version}</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet-api.verison}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp-api.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
而 web.xml 的头文件也要改为3.1(可以照着 tomcat8 的web.xml 复制这段头文件)
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
方法一(推荐):
为了Maven 的编译环境和所设置的jdk 是一致的,在pom 中添加一个编译插件
<build>
<plugins>
<!-- Compiler 插件, 设定JDK版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
</plugins>
…… </build>
全部都设置好了之后
在项目中删除下面的文件(只保留 src 和pom.xml),重新导入 maven project
.settings .classpatch .projejct target
如此设置之后,项目就不会报错了。
方法二:
当然,如果没有使用这个maven插件,要去除这个错误的方法就是:
1)手动设置 jdk 编译版本为1.8
2)设置 java build path 的jre 为jdk 1.8
3)使用Navigator视图查看.setting 文件夹下的org.eclipse.wst.common.project.facet.core.xml 改成如下值
如此这般也可以解决这个问题(但是没有上面那个简单快捷,而且偶尔还是可能设置出错)