我正在使用maven在Eclipse中创建一个动态web应用程序。我添加了一些文件夹,如src/test/java和src/test/resources。我还更改了Java Build Path中的库,以获得JavaSE-1.7。到这里都没问题。

当我试图改变项目Facet动态Web模块时,出了问题。在同一个地方,我将Java更改为1.7。它仍然告诉我,不能将项目facet动态Web模块的版本更改为3.0。

我已经改变了所有我认为会影响改变的东西。


当前回答

进行maven更新或重新导入项目并没有帮助。@Sydney的答案是正确的;此外,我必须在不同的工作空间中重新创建项目,因为JavaServer Faces 2.2需要动态Web模块2.5或更新版本

其他回答

对我有用的是:

将Java更改为1.8(或1.7)

在你的POM中-你必须在<build>节中将编译器插件设置为1.8(或1.7)版本:

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

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

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

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

在这个阶段,我仍然不能改变动态Web模块;

而不是改变它:

a)取消勾选动态Web模块

b)应用

C)再检查一遍。新版本3.0应该设置。**

应用并再次检查后:

希望这能有所帮助。

我更新了我的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>

然后只需Maven ->更新项目…

我想我也有和你一样的问题。我的Web .xml有2.5版本,而项目有(右键单击项目->属性->项目facet ->)动态Web模块2.3。

尽管我试图将版本从2.3更改为2.5,但ECLIPSE不允许。 解决方案:我删除了标题下的复选标记动态Web模块,我保存,我有更新项目。自动重新唤醒是用正确的版本进入框。我用的是Eclipse Kepler。

附注:看看乔纳森下面的评论,非常有用。

另一种方法是编辑项目facet配置文件本身

将这一行中的动态web模块版本更改为3.0 - <installed facet="jst. xml "。网络”version = " 2.5 " / >

然后:

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

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

我尝试了这里的许多答案,但没有一个对我有用。 然后我在这里找到了一篇关于我的问题的文章。我也想在这里分享。

下面是简单的步骤。

设置编译器遵从级别。 更新项目面 从首选项更新已安装的JRE 在pom.xml中添加配置以使用java 1.7,最后 从Maven更新项目。