天天看点

maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5

我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一般现在至少都是2.5,在 Project Facets里面修改Dynamic web module为2.5的时候就会出现Cannot change version of project facet Dynamic web module to 2.5,如图:

maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5

其实在右边可以看到改到2.5需要的条件以及有冲突的facets,解决这个问题的步骤如下:

1.把Servlet改成2.5,打开项目的web.xml,改之前:

maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5

<!DOCTYPE web-app PUBLIC  

 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  

 "http://java.sun.com/dtd/web-app_2_3.dtd" >  

<web-app>  

  <display-name>Archetype Created Web Application</display-name>  

</web-app>  

改后:

maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5

<?xml version="1.0" encoding="UTF-8"?>  

<web-app version="2.5"  

    xmlns="http://java.sun.com/xml/ns/javaee"  

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  

    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  

2.修改项目的设置,在Navigator下打开项目.settings目录下的org.eclipse.jdt.core.prefs

maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5
maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5
maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5

eclipse.preferences.version=1  

org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled  

org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5  

org.eclipse.jdt.core.compiler.compliance=1.5  

org.eclipse.jdt.core.compiler.problem.assertIdentifier=error  

org.eclipse.jdt.core.compiler.problem.enumIdentifier=error  

org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning  

org.eclipse.jdt.core.compiler.source=1.5  

把1.5改成1.6

maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5

org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6  

org.eclipse.jdt.core.compiler.compliance=1.6  

org.eclipse.jdt.core.compiler.source=1.6  

打开org.eclipse.wst.common.component

maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5

<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>  

maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5

<a href="https://code.csdn.net/snippets/444667/fork" target="_blank"></a>

&lt;project-modules id="moduleCoreId" project-version="1.6.0"&gt;  

打开org.eclipse.wst.common.project.facet.core.xml

maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5

&lt;faceted-project&gt;  

  &lt;fixed facet="wst.jsdt.web"/&gt;  

  &lt;installed facet="java" version="1.5"/&gt;  

  &lt;installed facet="jst.web" version="2.3"/&gt;  

  &lt;installed facet="wst.jsdt.web" version="1.0"/&gt;  

&lt;/faceted-project&gt;  

把&lt;installed facet="java" version="1.5"/&gt;改成&lt;installed

facet="java" version="1.6"/&gt;,把  &lt;installed facet="jst.web"

version="2.3"/&gt;改成  &lt;installed facet="jst.web" version="2.5"/&gt;

maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5

  &lt;installed facet="java" version="1.6"/&gt;  

  &lt;installed facet="jst.web" version="2.5"/&gt;  

都改好之后在打开看看,已经把Dynamic web module改成了2.5

maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5

好了,大功搞成,这是一种解决办法,但是治标不治本,更高级的就是自定义catalog,然后安装到本地,再创建的时候啥都有了,比如把现在流行的

s(struts2)sh,ssi,s(springmvc)sh 创建catalog,包括包结构,部分代码啥的都有,下次写吧。