我们用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,如图:

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

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

  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4. <web-app>
  5. <display-name>Archetype Created Web Application</display-name>
  6. </web-app>

改后:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <display-name>Archetype Created Web Application</display-name>
  8. </web-app>

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

 
 
 
  1. eclipse.preferences.version=1
  2. org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
  3. org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
  4. org.eclipse.jdt.core.compiler.compliance=1.5
  5. org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
  6. org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
  7. org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
  8. org.eclipse.jdt.core.compiler.source=1.5

把1.5改成1.6

  1. eclipse.preferences.version=1
  2. org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
  3. org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
  4. org.eclipse.jdt.core.compiler.compliance=1.6
  5. org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
  6. org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
  7. org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
  8. org.eclipse.jdt.core.compiler.source=1.6

打开org.eclipse.wst.common.component

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project-modules id="moduleCoreId" project-version="1.5.0">
  3. <wb-module deploy-name="test">
  4. <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
  5. <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
  6. <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
  7. <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
  8. <property name="context-root" value="test"/>
  9. <property name="java-output-path" value="/test/target/classes"/>
  10. </wb-module>
  11. </project-modules>

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project-modules id="moduleCoreId" project-version="1.6.0">
  3. <wb-module deploy-name="test">
  4. <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
  5. <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
  6. <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
  7. <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
  8. <property name="context-root" value="test"/>
  9. <property name="java-output-path" value="/test/target/classes"/>
  10. </wb-module>
  11. </project-modules>

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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <faceted-project>
  3. <fixed facet="wst.jsdt.web"/>
  4. <installed facet="java" version="1.5"/>
  5. <installed facet="jst.web" version="2.3"/>
  6. <installed facet="wst.jsdt.web" version="1.0"/>
  7. </faceted-project>

把<installed facet="java" version="1.5"/>改成<installed
facet="java" version="1.6"/>,把  <installed facet="jst.web"
version="2.3"/>改成  <installed facet="jst.web" version="2.5"/>

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <faceted-project>
  3. <fixed facet="wst.jsdt.web"/>
  4. <installed facet="java" version="1.6"/>
  5. <installed facet="jst.web" version="2.5"/>
  6. <installed facet="wst.jsdt.web" version="1.0"/>
  7. </faceted-project>

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

好了,大功搞成,这是一种解决办法,但是治标不治本,更高级的就是自定义catalog,然后安装到本地,再创建的时候啥都有了,比如把现在流行的
s(struts2)sh,ssi,s(springmvc)sh 创建catalog,包括包结构,部分代码啥的都有,下次写吧。

 

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

  1. 解决Cannot change version of project facet Dynamic Web M 3.0

    解决Cannot change version of project facet Dynamic Web M 3.0 dynamic web module 版本之间的区别: Servlet 3.0 D ...

  2. maven项目报错--Cannot change version of project facet Dynamic Web Module to 3.0 Error in Eclipse

    错误原因: 使用ecplise构建的maven骨架默认支持的是web2.3的版本,当使用这个创建3.0版本的web项目时则会报这样的错误: Cannot change version of proje ...

  3. MAVEN解决Cannot change version of project facet Dynamic web module to 2.5

    我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一 ...

  4. maven 解决Cannot change version of project facet Dynamic web module to 2.5

    我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一 ...

  5. eclipse 导入新项目后报错:Cannot change version of project facet Dynamic web module to 2.5

    错误原因: 我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2 ...

  6. 解决Cannot change version of project facet Dynamic web module to 2.5

    我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一 ...

  7. 解决Cannot change version of project facet Dynamic web module to 3.0

    我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一 ...

  8. 【转】解决Cannot change version of project facet Dynamic web module to 2.5

    http://blog.csdn.net/steveguoshao/article/details/38414145 我们用Eclipse创建Maven结构的web项目的时候选择了Artifact I ...

  9. [转]解决Cannot change version of project facet Dynamic web module to 2.5

    我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一 ...

随机推荐

  1. 使用icomoon把svg图片生成字体图标

    今天看了使用icomoon来将svg转换成图标字体,本来是不会使用别人给的svg,也不清楚具体的好处是什么,查了svg以后,越来越懵,svg挺好的为什么要转成图标字体呢. 一.SVG介绍 SVG 是一 ...

  2. HUD 1506 Largest Rectangle in a Histogram

    Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  3. Eclipse编译无响应

    Eclipse编译无响应 Eclipse进程无响应结束进程后,或电脑直接断电后,重新打开Eclipse偶尔重新编译会卡进度,下面有一种解决方案: 首先找到卡进度的工程的名字,关闭Eclipse,找到该 ...

  4. connectTimeOut和readTimeout

    网络编程时,经常遇到很多timeout异常,下面是java URLConnection 中经典的2种 timeout参数,这些参数设置不当的话,就会遇到timeout 异常. 1. ConnectTi ...

  5. android 获得系统时间

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  6. 改动C:\WINDOWS\system32\drivers\etc\hosts 文件有什么作用

    host是一个没有扩展名的系统文件,能够用记事本等工具打开,其作用就是将一些常常使用的网址域名与其相应的IP地址建立一个关联"数据库".当用户在浏览器中输入一个须要登录的网址时,系 ...

  7. UBUntu 软件 源配置方法

        近期公司产品须要添加一个功能,就是版本号自己主动更新.使用apt-get 实现. apt-get 软件源配置的方法,參见本人资源里的共享.以下是代码中作为升级的一部分.  FILE *fp; ...

  8. Beijing Bus

    Search: http://bjgj.aibang.com:8899 https://github.com/sp-chenyang/bus https://github.com/leavind/Co ...

  9. Redis实现消息的发布/订阅

    利用spring-boot结合redis进行消息的发布与订阅: 发布: class Publish { private static String topicName = “Topic:chat”; ...

  10. grunt简单教程

    Grunt简单教程 1.grunt简单介绍 Grunt是一个基于任务的命令行工具.依赖于node.js环境. 它能帮你合并js文件,压缩js文件,验证js.编译less,合并css.还能够配置自己主动 ...