我正在尝试在 Netbeans 11.0 中从 JSF 2.2 升级到 2.4。
I 下载了二进制文件 https://mvnrepository.com/artifact/org.glassfish/javax.faces/2.4.0并将其添加为新库:
但是当我查看项目的属性时,我仍然看到旧的 JSF 版本 1.2 和 2.2:
将其添加为 Maven 依赖项是升级的唯一方法吗?我想为所有(未来的)项目在全球范围内升级它。
我正在使用 Java EE 8 和 Payara Server 5.192。
JSF 2.4 确实not根本作为官方 API 存在。不要使用它。目前最新的官方版本是 2.3,下一个版本是 3.0,它将作为 Jakarta EE 9 的一部分发布(本质上与 2.3 完全相同,但随后将包重命名为javax.faces
to jakarta.faces
).
另请参阅博客文章不要使用 org.glassfish Mojarra 2.4.0! http://balusc.omnifaces.org/2018/04/do-not-use-orgglassfish-mojarra-240.html确实是你写的。
不,JSF 2.4 不存在。从技术上来说,Mojarra 2.4.0代表了最新的状态主分支 https://github.com/javaserverfaces/mojarra就像从 Oracle 转移到 Eclipse 期间一样。该转移是在 JSF 2.3 规范已经发布且 JSF 2.4 规范尚未启动时发生的。 JSF 2.4 远非测试版,更谈不上是一个合理的快照。然而 Maven 中有一个 Mojarra 2.4.0,而不是例如Mojarra 2.4.0-M1。根据Oracle和Eclipse之间的协议,在完成向Eclipse的转移之前,需要将Oracle旗下Mojarra的最新工作发布到Maven Central,并且必须在不进行任何代码修改的情况下完成,即使 pom.xml 版本更改也是不允许的,因此版本无法修改。稍后Eclipse也会在转移完成后做同样的事情,以便公众可以验证完整性。使用版本“2.4.0”确实对公众来说太混乱了,因为实际上根本不代表真正的“2.4.0”版本,但它就是这样。
换句话说,你不应该使用它。 Mojarra 2.4.0 基本上介于 Mojarra 2.3.3 和 2.3.4 之间。几天之后,莫贾拉2.3.4 https://repo.maven.apache.org/maven2/org/glassfish/javax.faces/2.3.4/被释放了。用这个代替。
或者,如果已经有一个newer https://repo.maven.apache.org/maven2/org/glassfish/jakarta.faces/2.3.x 版本可用,显然可以使用它。
至于您使用 Netbeans 的具体问题,您需要对其进行升级才能在其内置下拉列表中看到“JSF 2.3”选项。或者,您也可以忽略它并自己编写 JSF 2.3 目标代码,而不是让 IDE 自动生成它。这基本上就是“JSF 2.3”选项的作用。自动生成合适的 JSF 2.3faces-config.xml
文件之类的。但作为程序员的你当然可以根据官方文档轻松地自己编写代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)