起因:今天使用maven创建web项目的时候发现项目上老是有个红X,错误如下图所示,虽然项目能正常运行起来,但是LZ的强迫症发作,不弄掉就觉得心里不舒服,于是上网查了攻略,几经周折最终大功告成,现在就把我的解决方法记录下来,防止以后再次发生。
解决步骤:
1.打开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\" xmlns:web=\"http://java.sun.com/xml/ns/javaee/web-app_2_3.xsd\" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_3.xsd\" id=\"WebApp_ID\" version=\"2.3\">
改为3.0
<?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\" xmlns:web=\"http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd\" 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\">
2.关闭eclipse 打开项目.settings目录下的org.eclipse.jdt.core.prefs
eclipse.preferences.version=1org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabledorg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5org.eclipse.jdt.core.compiler.compliance=1.5org.eclipse.jdt.core.compiler.problem.assertIdentifier=errororg.eclipse.jdt.core.compiler.problem.enumIdentifier=errororg.eclipse.jdt.core.compiler.problem.forbiddenReference=warningorg.eclipse.jdt.core.compiler.source=1.5
把1.5改为1.7
eclipse.preferences.version=1org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabledorg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7org.eclipse.jdt.core.compiler.compliance=1.7org.eclipse.jdt.core.compiler.problem.assertIdentifier=errororg.eclipse.jdt.core.compiler.problem.enumIdentifier=errororg.eclipse.jdt.core.compiler.problem.forbiddenReference=warningorg.eclipse.jdt.core.compiler.source=1.7
3.打开org.eclipse.wst.common.component
<?xml version=\"1.0\" encoding=\"UTF-8\"?><project-modules id=\"moduleCoreId\" project-version=\"1.5.0\"> <wb-module deploy-name=\"test\"> <wb-resource deploy-path=\"/\" source-path=\"/target/m2e-wtp/web-resources\"/> <wb-resource deploy-path=\"/\" source-path=\"/src/main/webapp\" tag=\"defaultRootSource\"/> <wb-resource deploy-path=\"/WEB-INF/classes\" source-path=\"/src/main/java\"/> <wb-resource deploy-path=\"/WEB-INF/classes\" source-path=\"/src/main/resources\"/> <property name=\"context-root\" value=\"test\"/> <property name=\"java-output-path\" value=\"/test/target/classes\"/> </wb-module></project-modules>
将1.5.0改为1.7.0
<?xml version=\"1.0\" encoding=\"UTF-8\"?><project-modules id=\"moduleCoreId\" project-version=\"1.7.0\"> <wb-module deploy-name=\"test\"> <wb-resource deploy-path=\"/\" source-path=\"/target/m2e-wtp/web-resources\"/> <wb-resource deploy-path=\"/\" source-path=\"/src/main/webapp\" tag=\"defaultRootSource\"/> <wb-resource deploy-path=\"/WEB-INF/classes\" source-path=\"/src/main/java\"/> <wb-resource deploy-path=\"/WEB-INF/classes\" source-path=\"/src/main/resources\"/> <property name=\"context-root\" value=\"test\"/> <property name=\"java-output-path\" value=\"/test/target/classes\"/> </wb-module></project-modules>
4.打开org.eclipse.wst.common.project.facet.core.xml
<?xml version=\"1.0\" encoding=\"UTF-8\"?><faceted-project> <fixed facet=\"wst.jsdt.web\"/> <installed facet=\"java\" version=\"1.5\"/> <installed facet=\"jst.web\" version=\"2.3\"/> <installed facet=\"wst.jsdt.web\" version=\"1.0\"/></faceted-project>
将1.5改为1.7 2.3改为3.0
<?xml version=\"1.0\" encoding=\"UTF-8\"?><faceted-project> <fixed facet=\"wst.jsdt.web\"/> <installed facet=\"java\" version=\"1.7\"/> <installed facet=\"jst.web\" version=\"3.0\"/> <installed facet=\"wst.jsdt.web\" version=\"1.0\"/></faceted-project>
此时重新打开eclipse,一般人到这个时候红xx已经解决了,但是LZ打开一看红x竟然还在,心拔凉拔凉的,没办法,生活还是要继续,于是LZ又继续找啊找,又被我找到个方法
5.在pom.xml中增加一段代码
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <!-- 指定source和target的版本 --> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins>
此时红x依旧在,哭死,感觉生活没了希望。最后右击项目 Maven -> Update Project 红x居然消失了,真开心,虽然不知道什么原理,但是先记录一下,以防以后又出现这种请款。