2.2.4. 使用 OpenRewrite methods


重要

OpenRewrite method 支持仅作为技术预览提供。技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

如需有关技术预览功能支持范围 的信息,请参阅红帽客户门户网站中的技术预览功能支持范围。

您可以通过 MTA CLI 使用 OpenRewrite 方法来重构 Java 应用程序的源代码。

例如,OpenRewrite method org.jboss.windup.JavaxToJakarta 将导入的 javax 软件包重命名为其对于的 jakarta

流程

  1. 运行 mta-cli,指定方法名称、配置文件的路径,以及应用程序:

    $ ./mta-cli --openrewrite --input </path/to/source/project> \
      "-Drewrite.configLocation=<path/to/rewrite.yaml>  \
      "-DactiveRecipes=<recipe_name>" --goal dryRun
    Copy to Clipboard Toggle word wrap
    • "-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.JavaxInjectToJakartaInjectorg.jboss.windup.JavaxEjbToJakartaEjb",为 "-DactiveRecipes=<recipes=<recipe name>" 输入以下内容 :

        "DactiveRecipes=org.jboss.windup.JavaxInjectToJakartaInject, \
          org.jboss.windup.JavaxEjbToJakartaEjb"
      Copy to Clipboard Toggle word wrap
    • --goal :可选:要运行的 OpenRewrite Maven 目标。

      • dryRun :该脚本返回提议的更改列表。忽略 "Run 'mvn rewrite:run' to apply the recipes" 信息。
      • run : 脚本应用更改。
  2. 使用 --goal run 运行 mta-cli 以应用方法:

    $ ../mta-cli --openrewrite --input </path/to/source/project> \
      "-Drewrite.configLocation=<path/to/rewrite.yaml>  \
      "-DactiveRecipes=<recipe_name>" --goal run
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat