You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自定义OpenRewrite声明式YAML配方的位置、名称与拆分方式?

OpenRewrite 自定义配方文件位置与多文件配置方案

你提到的三个需求都可以实现,具体操作方式如下:

1. 将配方文件移至 gradle/rewrite/ 目录

可以通过指定配置文件路径实现,有两种方式:

  • 在初始化脚本(init.gradle)中配置:
    在gradle/rewrite/init.gradle里添加以下配置,指定新的文件路径:
    plugins {
        id 'org.openrewrite.rewrite' version 'latest.release'
    }
    
    rewrite {
        configFiles = files("gradle/rewrite/rewrite.yml")
    }
    
  • 通过命令行参数指定:
    运行命令时添加系统属性指定路径:
    .\gradlew rewriteDryRun --init-script gradle\rewrite\init.gradle "-Drewrite.activeRecipe=my.domein.MyRecipe" "-Drewrite.configFiles=gradle/rewrite/rewrite.yml"
    

2. 修改配方文件名称为 my-recipes.yml

操作逻辑和移动路径一致,只需把配置中的文件名替换为新名称即可:

  • 脚本配置示例:
    rewrite {
        configFiles = files("gradle/rewrite/my-recipes.yml")
    }
    
  • 命令行参数示例:
    .\gradlew rewriteDryRun --init-script gradle\rewrite\init.gradle "-Drewrite.activeRecipe=my.domein.MyRecipe" "-Drewrite.configFiles=gradle/rewrite/my-recipes.yml"
    

3. 将配方分组到多个文件中

OpenRewrite支持加载多个配方文件,只需在配置中列出所有文件路径即可:

  • 脚本配置示例:
    rewrite {
        configFiles = files(
            "gradle/rewrite/my-recipes-for-issue1.yml",
            "gradle/rewrite/my-recipes-for-issue2.yml"
        )
    }
    
  • 命令行参数示例:
    .\gradlew rewriteDryRun --init-script gradle\rewrite\init.gradle "-Drewrite.activeRecipe=my.domein.MyRecipe" "-Drewrite.configFiles=gradle/rewrite/my-recipes-for-issue1.yml,gradle/rewrite/my-recipes-for-issue2.yml"
    

注意多个文件路径在命令行中用逗号分隔,无需空格。

内容的提问来源于stack exchange,提问作者Koohoolinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:27:38