有支持 Java 14 的 tomee-maven-plugin 版本吗?
is there a tomee-maven-plugin version that support Java 14?
我正在使用 tomee-maven-plugin 版本 8.0.5(在 mvn 存储库中找到的最新版本)生成我的 JSF 项目的可执行 Jar,
</plugin>
<plugin>
<groupId>org.apache.tomee.maven</groupId>
<artifactId> </artifactId>
<version>8.0.5</version>
<executions>
<execution>
<id>executable-jar</id>
<goals>
<goal>exec</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
打包命令运行良好,我得到了 War 和 Jar
但是当我启动服务器时
java -jar MyJar.jar
我正在使用 Java14 Tomee 上的部署在 Eclipse 中运行良好
,应用程序加载导致此错误:
Caused by: org.apache.openejb.OpenEJBException: Unable to create annotation scanner for web module MonProjet-0.0.1-SNAPSHOT: Unable to read class definition for gestion.controller.GuestServiceControler
at org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoader.java:886)
at org.apache.openejb.config.DeploymentLoader.load(DeploymentLoader.java:233)
at org.apache.tomee.catalina.TomcatWebAppBuilder.loadApplication(TomcatWebAppBuilder.java:2361)
... 44 more
Caused by: java.lang.RuntimeException: Unable to read class definition for gestion.controller.GuestServiceControler
at org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinder.java:1180)
at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java:153)
at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java:166)
at org.apache.openejb.config.FinderFactory$OpenEJBAnnotationFinder.<init>(FinderFactory.java:546)
at org.apache.openejb.config.FinderFactory.newFinder(FinderFactory.java:267)
at org.apache.openejb.config.FinderFactory.create(FinderFactory.java:80)
at org.apache.openejb.config.FinderFactory.createFinder(FinderFactory.java:69)
at org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoader.java:878)
... 46 more
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 58
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:195)
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:176)
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:162)
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:283)
at org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinder.java:1176
我对此进行了研究,问题出在“org.apache.xbean.asm7”依赖项中,我试图通过强制插件使用“org.apache.xbean.asm8”来覆盖此依赖项但它没有用
并且没有其他版本的 Maven 插件可以使用
有人对此有更多信息吗?
谢谢
较旧的 TomEE <= 8.0.6 仍在使用阴影版本的 asm7,它对较新的 Java 版本(最多 JDK 13)。这也影响了 Tomee 的几个 transiend 依赖项,如 OWB、CXF 等
实际上,有一些与 JDK 16 相关的工作以及一些待处理的公开拉取请求,以便在下一个 TomEE 版本中支持 JDK16:
- https://github.com/apache/tomee/pull/776
- https://github.com/apache/tomee/pull/777
- https://github.com/apache/tomee/commit/51610f832c8d802c7b4e0c3d42552d7f7536fd44
根据我的经验,TomEE 8.0.6 在 JDK11 上运行良好。所以现在,您应该使用 JDK11 并等待下一个具有相关更改的 TomEE 版本发布。
更新 (15.04.2021)
我目前是 运行 TomEE 8.0.7-SNAPSHOT (Plume),带有 JDK-16(它也适用于 Maven 插件)。
目前,需要进行以下调整:
您需要通过 <lib>remove:openjpa</lib>
和 <lib>remove:xbean-asm8-shaded</lib>
在 <libs>
中删除 OpenJPA 3.1.2 及其瞬态 asm8 依赖项并重新添加最新的 3.1.3-SNAPSHOT
通过 <lib>org.apache.openjpa:openjpa:3.1.3-SNAPSHOT</lib>
现在,它需要在插件配置中指定 <args>--illegal-access=permit</args>
以允许一些反射和其他东西。 Java 16 切换默认。
更新 (10.10.2022)
TomEE 8.0.9 开箱即用地支持 JDK17。
我正在使用 tomee-maven-plugin 版本 8.0.5(在 mvn 存储库中找到的最新版本)生成我的 JSF 项目的可执行 Jar,
</plugin>
<plugin>
<groupId>org.apache.tomee.maven</groupId>
<artifactId> </artifactId>
<version>8.0.5</version>
<executions>
<execution>
<id>executable-jar</id>
<goals>
<goal>exec</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
打包命令运行良好,我得到了 War 和 Jar 但是当我启动服务器时
java -jar MyJar.jar
我正在使用 Java14 Tomee 上的部署在 Eclipse 中运行良好 ,应用程序加载导致此错误:
Caused by: org.apache.openejb.OpenEJBException: Unable to create annotation scanner for web module MonProjet-0.0.1-SNAPSHOT: Unable to read class definition for gestion.controller.GuestServiceControler
at org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoader.java:886)
at org.apache.openejb.config.DeploymentLoader.load(DeploymentLoader.java:233)
at org.apache.tomee.catalina.TomcatWebAppBuilder.loadApplication(TomcatWebAppBuilder.java:2361)
... 44 more
Caused by: java.lang.RuntimeException: Unable to read class definition for gestion.controller.GuestServiceControler
at org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinder.java:1180)
at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java:153)
at org.apache.xbean.finder.AnnotationFinder.<init>(AnnotationFinder.java:166)
at org.apache.openejb.config.FinderFactory$OpenEJBAnnotationFinder.<init>(FinderFactory.java:546)
at org.apache.openejb.config.FinderFactory.newFinder(FinderFactory.java:267)
at org.apache.openejb.config.FinderFactory.create(FinderFactory.java:80)
at org.apache.openejb.config.FinderFactory.createFinder(FinderFactory.java:69)
at org.apache.openejb.config.DeploymentLoader.addWebModule(DeploymentLoader.java:878)
... 46 more
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 58
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:195)
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:176)
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:162)
at org.apache.xbean.asm7.ClassReader.<init>(ClassReader.java:283)
at org.apache.xbean.finder.AnnotationFinder.readClassDef(AnnotationFinder.java:1176
我对此进行了研究,问题出在“org.apache.xbean.asm7”依赖项中,我试图通过强制插件使用“org.apache.xbean.asm8”来覆盖此依赖项但它没有用 并且没有其他版本的 Maven 插件可以使用 有人对此有更多信息吗? 谢谢
较旧的 TomEE <= 8.0.6 仍在使用阴影版本的 asm7,它对较新的 Java 版本(最多 JDK 13)。这也影响了 Tomee 的几个 transiend 依赖项,如 OWB、CXF 等
实际上,有一些与 JDK 16 相关的工作以及一些待处理的公开拉取请求,以便在下一个 TomEE 版本中支持 JDK16:
- https://github.com/apache/tomee/pull/776
- https://github.com/apache/tomee/pull/777
- https://github.com/apache/tomee/commit/51610f832c8d802c7b4e0c3d42552d7f7536fd44
根据我的经验,TomEE 8.0.6 在 JDK11 上运行良好。所以现在,您应该使用 JDK11 并等待下一个具有相关更改的 TomEE 版本发布。
更新 (15.04.2021)
我目前是 运行 TomEE 8.0.7-SNAPSHOT (Plume),带有 JDK-16(它也适用于 Maven 插件)。
目前,需要进行以下调整:
您需要通过
<lib>remove:openjpa</lib>
和<lib>remove:xbean-asm8-shaded</lib>
在<libs>
中删除 OpenJPA 3.1.2 及其瞬态 asm8 依赖项并重新添加最新的3.1.3-SNAPSHOT
通过<lib>org.apache.openjpa:openjpa:3.1.3-SNAPSHOT</lib>
现在,它需要在插件配置中指定
<args>--illegal-access=permit</args>
以允许一些反射和其他东西。 Java 16 切换默认。
更新 (10.10.2022)
TomEE 8.0.9 开箱即用地支持 JDK17。