距离 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, 请逐个指定即可。