天天看點

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,包括包結構,部分代碼啥的都有,下次寫吧。