Maven <execution>在Gradle中的等价实现及Javax转Jakarta插件迁移
Javax转Jakarta:Maven插件转Gradle配置及Task编写
一、对应Maven插件的Gradle配置实现
你提供的Maven插件是Eclipse Transformer,用于将Javax相关类转换为Jakarta规范。在Gradle中可通过以下方式实现相同功能:
首先在build.gradle中添加Transformer的CLI依赖:
buildscript { repositories { mavenCentral() } dependencies { classpath 'org.eclipse.transformer:org.eclipse.transformer.cli:0.2.0' } }
二、编写javaxToJakarta Task
创建JavaExec类型的Task,完全对齐你Maven配置的逻辑:
task javaxToJakarta(type: JavaExec) { // 指定Transformer CLI的主类入口 mainClass = 'org.eclipse.transformer.cli.Main' // 配置转换参数:输入原Jar、输出带jakarta classifier的Jar、使用内置Jakarta转换规则 args = [ '-i', "${buildDir}/libs/${project.name}-${project.version}.jar", '-o', "${buildDir}/libs/${project.name}-${project.version}-jakarta.jar", '-r', 'jakarta' ] // 确保先完成原Jar打包,再执行转换 dependsOn tasks.named('package') // 将任务绑定到assemble生命周期,对应Maven的package阶段 tasks.named('assemble').configure { dependsOn javaxToJakarta } }
关键说明
- 该Task会在
package任务完成后执行,生成带jakartaclassifier的Jar包,和你Maven配置的效果完全一致。 - 如果需要自定义转换规则或处理更多文件,可调整
args参数,参考Eclipse Transformer的CLI参数说明。 - 务必确保项目仓库配置了
mavenCentral(),否则无法拉取Transformer依赖。
内容的提问来源于stack exchange,提问作者Joo Sung Lee
相关产品推荐
相关产品推荐

