2.2.4. 使用 OpenRewrite methods
OpenRewrite method 支持仅作为技术预览提供。技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
如需有关技术预览功能支持范围 的信息,请参阅红帽客户门户网站中的技术预览功能支持范围。
您可以通过 MTA CLI 使用 OpenRewrite 方法来重构 Java 应用程序的源代码。
例如,OpenRewrite method org.jboss.windup.JavaxToJakarta 将导入的 javax 软件包重命名为其对于的 jakarta。
流程
运行
mta-cli,指定方法名称、配置文件的路径,以及应用程序:./mta-cli --openrewrite --input </path/to/source/project> \ "-Drewrite.configLocation=<path/to/rewrite.yaml> \ "-DactiveRecipes=<recipe_name>" --goal dryRun
$ ./mta-cli --openrewrite --input </path/to/source/project> \ "-Drewrite.configLocation=<path/to/rewrite.yaml> \ "-DactiveRecipes=<recipe_name>" --goal dryRunCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
"-DactiveRecipes=<recipe name>": 指定 OpenRewrite recipe,例如org.jboss.windup.JavaxToJakarta。 -
--input:指定要重构的应用程序。该应用必须是包含 Maven 项目对象模型(POM) XML 文件pom.xml的源代码项目的顶部。 -
-Drewrite.configLocation=<path/to/rewrite.yaml>: 要使用的rewrite.yaml配置文件的位置。提供的rewrite.yaml配置文件位于<MTA_HOME>/rules/openrewrite子目录中,例如" -Drewrite.configLocation=<MTA_HOME>/rules/openrewrite/jakarta/javax/imports/rewrite.yaml"。 "-DactiveRecipes=<recipe name>": 指定 OpenRewrite recipe,例如org.jboss.windup.JavaxToJakarta。您可以通过在
activeRecipes参数中指定每个方法包含多个方法。例如,要包含方法org.jboss.windup.JavaxInjectToJakartaInject和org.jboss.windup.JavaxEjbToJakartaEjb",为"-DactiveRecipes=<recipes=<recipe name>"输入以下内容 :"DactiveRecipes=org.jboss.windup.JavaxInjectToJakartaInject, \ org.jboss.windup.JavaxEjbToJakartaEjb""DactiveRecipes=org.jboss.windup.JavaxInjectToJakartaInject, \ org.jboss.windup.JavaxEjbToJakartaEjb"Copy to Clipboard Copied! Toggle word wrap Toggle overflow --goal:可选:要运行的 OpenRewrite Maven 目标。-
dryRun:该脚本返回提议的更改列表。忽略"Run 'mvn rewrite:run' to apply the recipes"信息。 -
run: 脚本应用更改。
-
-
使用
--goal run运行mta-cli以应用方法:../mta-cli --openrewrite --input </path/to/source/project> \ "-Drewrite.configLocation=<path/to/rewrite.yaml> \ "-DactiveRecipes=<recipe_name>" --goal run
$ ../mta-cli --openrewrite --input </path/to/source/project> \ "-Drewrite.configLocation=<path/to/rewrite.yaml> \ "-DactiveRecipes=<recipe_name>" --goal runCopy to Clipboard Copied! Toggle word wrap Toggle overflow