如何自定义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
相关产品推荐
相关产品推荐

