距离 2019 年 JavaEE 标准规范改名为 JakartaEE 已经4、5年了,但国内基于 JavaEE 标准开发的应用仍处于主导地位。但是随着时间的推移以及软件生态的不断更新换代,许多企业也在尝试基于 JakartaEE 标准开发应用。但是目前 JFinal 尚不支持 JakartaEE 命名空间。为推动更多的企业由 JavaEE 向 JakartaEE 的转变,Apache Tomcat 推出了一个开源的 JavaEE 迁移 JakartaEE 的工具。这里以 JFinal_demo 为例介绍如何实现基于 JFinal 开发的应用支持 JakartaEE 标准。
1. clone migration:git clone https://github.com/apache/tomcat-jakartaee-migration.git
2. 修改 pom.xml :删除 maven 插件 maven-antrun-plugin 的依赖,否则打包会失败。
3. 打包 migration:mvn package -Dmaven.test.skip=true
4. 将 target/jakartaee-migration-1.0.8-shaded.jar 拷贝到项目根目录下。
5. 修改项目配置 pom.xml 文件:
<properties> <maven.assembly.finalname>${project.artifactId}-release</maven.assembly.finalname> <migration.jar.name>jakartaee-migration-1.0.8-shaded.jar</migration.jar.name> </properties> <!-- maven-antrun-plugin 需要位于 maven-assembly-plugin 之后 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>run</goal> </goals> <configuration> <target> <echo> javax.xxx 包转为 jakarta.xxx </echo> <exec executable="java" failonerror="true"> <arg line="-jar ${basedir}/${migration.jar.name} -profile=EE ${project.build.directory}/${maven.assembly.finalname} ${project.build.directory}/${maven.assembly.finalname}-jakarta"/> </exec> <exec executable="java" failonerror="true"> <arg line="-jar ${basedir}/${migration.jar.name} -profile=EE ${project.build.directory}/${maven.assembly.finalname}.zip ${project.build.directory}/${maven.assembly.finalname}-jakarta.zip"/> </exec> </target> </configuration> </execution> </executions> </plugin>
6. 项目执行打包 mvn clean package,包含 -jakarta 命名的文件夹和 zip 包即为可运行于支持 JakartaEE 标准规范的 Servlet 容器的包。注意:所有的 jar 包都已转换,如果仅转换部分 jar, 请逐个指定即可。