【发布时间】:2012-09-05 18:09:06
【问题描述】:
我有一个 Eclipse/Maven 网络项目。我正在尝试更新方面以支持 JSF2。但是我无法将动态 Web 模块更新到 3.0(甚至 2.5),因为 Eclipse 拒绝识别我正在使用 Java 1.6。它在方面属性中显示 Java 1.6,但每次我尝试将动态 Web 模块更改为 2.5 或 3.0 时,它都会告诉我必须使用 Java 1.6,即使已选择它。我该如何解决这个问题?
【问题讨论】:
我有一个 Eclipse/Maven 网络项目。我正在尝试更新方面以支持 JSF2。但是我无法将动态 Web 模块更新到 3.0(甚至 2.5),因为 Eclipse 拒绝识别我正在使用 Java 1.6。它在方面属性中显示 Java 1.6,但每次我尝试将动态 Web 模块更改为 2.5 或 3.0 时,它都会告诉我必须使用 Java 1.6,即使已选择它。我该如何解决这个问题?
【问题讨论】:
我不确定 Maven 是否以及如何在这里发挥作用,但忽略这一点,您也可以通过编辑 .settings/org.eclipse.wst.common.project.facet.core.xml 文件来更改项目方面。当您在 Navigator 视图(而不是 Project Explorer)中浏览时,您可以找到该文件。要将动态 Web 项目构面版本设置为 3.0,请编辑以下条目(版本未知,由 ... 表示)
<installed facet="jst.web" version="..."/>
到
<installed facet="jst.web" version="3.0"/>
如果这不能解决具体问题,那么很可能是某些 Maven 插件强制基于 pom.xml 左右的构面版本。
【讨论】:
遇到了同样的问题,查看了我的 maven/eclipse 项目的 .project 文件。 事实证明,您必须首先在您的项目方面项目首选项页面中将项目设为 Java 项目!
【讨论】:
不幸的是,截至目前,Eclipse Java EE 工具不支持更改模块方面(ear、ejb、web 等)的规范版本。您可以按照 BalusC 的描述直接编辑元数据文件并修补任何其他源兼容性问题。或者,您可以使用适当的规范版本创建一个新项目并将您的源代码复制到其中。
【讨论】:
如果您像我一样发现只有您的 Dynamic Web 项目存在此问题,请尝试检查您要部署到的服务器是否配置为您想要的 JRE 版本。 (全局首选项 -> 服务器 -> 运行时环境;然后编辑有问题的服务器运行时环境。)
您可能还需要按照 BalusC 和 Konstantin 的建议手动编辑 Eclipse 设置。如果这样做,在重新启动 Eclipse 后重新打开 Facets 首选项窗格并单击 OK 或 Apply。这可以让 Eclipse 健全性检查您的新设置。
【讨论】: