无法将项目方面动态Web模块的版本更改为3.0?

Edg*_*eng 327 java eclipse maven

我正在使用maven在Eclipse中创建动态webapp.我添加了一些像src/test/java和的文件夹src/test/resources.我还更改了Java Build Path中的库以获取JavaSE-1.7.这一切都可以.

当我尝试更改Projects Facet动态Web模块时出现问题.我在同一个地方将Java更改为1.7.它还告诉我,无法将项目方面的动态Web模块版本更改为3.0.

我已经改变了一切会影响我想的变化.

enk*_*kor 578

另一种方法是编辑项目构面配置文件本身: org.eclipse.wst.common.project.facet.core.xml

将此行中的动态Web模块版本更改为3.0 - <installed facet="jst.web" version="2.5"/>

然后:

  1. 右键单击项目(在Project Explorer面板中).
  2. 选择Maven»更新项目(或按Alt+F5)

您将.settings在Eclipse项目的目录中找到此文件.

  • 当您在项目中没有web.xml时,这似乎是解决此问题的唯一方法. (13认同)
  • 您可以在应用程序/项目.settings文件夹中找到org.eclipse.wst.common.project.facet.core.xml文件. (6认同)
  • 谢谢.实际上我认为我们应该像上面那样做其他事情,在web.xml中更改web模块的版本,如果没有,'Deployment Descriptor'版本将不会更改为3.0.这是maven插件中的一个错误吗? (3认同)
  • 我已经在web.xml中有3.0并且STS仍然无法更新,mvn更新也没有帮助.但是,这种方法很有效. (3认同)
  • 这有帮助,实际上转到-&gt; org.eclipse.wst.common.project.facet.core.xml-&gt;删除所有条目-&gt; maven更新项目。 (2认同)

Syd*_*ney 307

我更新了我的 web.xml

<web-app 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_3_0.xsd"
    version="3.0">
    <display-name>Servlet 3.0 Web Application</display-name>
</web-app>
Run Code Online (Sandbox Code Playgroud)

然后只是Maven - >更新项目......

  • 更新web.xml对我不起作用.@enkor提供的解决方案:http://stackoverflow.com/a/18632054/378633 (62认同)
  • 你可以解释一下为什么有用吗? (5认同)
  • 以下是3.1 web.xml文件的有效标头<?xml version ="1.0"encoding ="UTF-8"?> <web-app xmlns:xsi ="http://www.w3.org/2001/ XMLSchema-instance"xmlns ="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation ="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp .org/xml/ns/javaee/web-app_3_1.xsd"id ="WebApp_ID"version ="3.1"> (5认同)
  • 没有web.xml的项目呢?:) (3认同)
  • maven - >更新项目诀窍......仍然是2.5 (2认同)

pag*_*rix 167

我想我和你有同样的问题.我的web.xml版本为2.5,而项目有(右键单击Project-> Properties-> Project Facets->)Dynamic Web Module 2.3.

虽然我试图将版本从2.3更改为2.5但ECLIPSE不允许这样做.解决方案:我删除了动态Web模块标题下的复选标记,我已保存并且我有更新项目.自动重新唤醒正在进入具有正确版本的框.我使用Eclipse Kepler.

ps:看看下面Jonathan评论,非常有用.

  • @Suresh,我认为为什么它不允许更改版本的问题是因为它被锁定了.如果右键单击"动态Web模块"构面,它将显示"解锁"选项.取消锁定后,取消检查DWM方面,重新应用方面,并进行项目maven更新,错误消失了. (24认同)
  • +1.如果没有这个非常重要的观点,其他人在这里的答 只有我认为乔纳森的评论应该包含在答案中. (2认同)

小智 47

  1. 单击您的项目文件夹.
  2. 转到窗口>显示视图>导航器
  3. 转到Navigator并展开.settings文件夹
  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="jst.web" version="2.3"/>
      <installed facet="wst.jsdt.web" version="1.0"/>
      <installed facet="java" version="1.8"/>
    </faceted-project>
    
    Run Code Online (Sandbox Code Playgroud)
  5. 像这样更改版本 <installed facet="jst.web" version="3.1"/>

  6. 保存
  7. 只需更新您的项目.右键单击项目文件夹> Maven>更新项目>选择项目,然后单击"确定"

这对我有用.


Adr*_*Ber 42

我有同样的问题,我甚至试图删除该项目并再次添加它.诀窍是删除.settings目录.

  • 我也必须这样做.我使用的是带有基于Java的配置的Spring Web项目,因此我无法更新web.xml. (2认同)

小智 24

删除

.settings 
.classpatch 
.projejct 
target
Run Code Online (Sandbox Code Playgroud)

并再次导入maven项目.


Wit*_*rba 20

什么对我有用:

  1. 将Java更改为1.8(或1.7)

在您的POM中 - 您必须在以下部分中将编译器插件设置为版本1.8(或1.7)<build>:

  <build>
    ...
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.6.0</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </plugin>  
      </plugins>    
  </build>
Run Code Online (Sandbox Code Playgroud)

确保更改Java Build显示1.8.如果没有 - 单击编辑并选择它应该是什么.

在此输入图像描述

  1. 修改web.xml,以便在版本和链接中引用3.0

在此输入图像描述

  1. 确保在Project Facets中将Java设置为1.8

在此输入图像描述

  1. 在这个阶段,我仍然无法改变动态Web模块;

而不是改变它:

a)取消选中动态Web模块

b)申请

c)再次检查.应该设置新版本3.0.**

在此输入图像描述

再次申请并检查后:

在此输入图像描述

希望这可以帮助.


小智 15

右键单击项目属性 ; 在Project Facets中,取消选择Dynamic Web Module(版本应为3.1)并取消选择JavaServer Faces(版本为2.2).

改变这个:

<web-app version="3.1" 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">
Run Code Online (Sandbox Code Playgroud)

对此:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
Run Code Online (Sandbox Code Playgroud)

然后删除之前的前缀param-name等.

最后,Maven - > 更新项目.


小智 8

请打开导航器视图并执行以下步骤

  1. (窗口>显示视图>其他>常规)并发现项目下有.settings文件夹,展开它然后打开文件"org.eclipse.wst.common.project.facet.core.xml",制作下面更改并保存文件.
  2. 将此行中的动态Web模块版本更改为2.5 -
  3. 将此行中的Java版本更改为1.5或更高版本 - .

  • 您忘了在"显示视图"对话框的"常规"文件夹下告诉您应该选择哪个视图.它是"导航器"视图吗? (5认同)

Sid*_*ram 6

从项目结构中打开web.xml http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version ="3.0"> Servlet 3.0 Web应用程序

并更新web.xml文件,例如change version ="2.5"

还要从项目.settings文件更改org.eclipse.wst.common.project.facet.core.xml文件.按照步骤1.窗口>显示视图>其他>常规>导航器

  1. 项目目录下有一个.settings文件夹

  2. 将此行中的动态Web模块版本更改为2.5 4.将此行中的Java版本更改为1.5或更高版本

现在刷新您的项目并设置为在您的服务器上运行.

请按照博客中的解决方案 http://scrapillars.blogspot.in/2014/02/how-to-change-project-facet-in-eclipse.html

该解决方案使用图像插图生成


小智 6

最简单的步骤为我解决了这个问题:1)属性 - > 项目构面 - >取消选中/取消选中动态Web模块的复选框- >应用2)现在更改为所需的版本应用3)选中动态Web模块复选框.. - 现在你完成了 -