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 dryRun
Copy 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 run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow