使用AddOrUpdateAnnotationAttribute时如何排除build.gradle被解析?
问题原因
OpenRewrite 默认会扫描项目内的所有源文件(包括build.gradle这类构建配置文件),这是因为它的核心框架设计支持多语言重构场景。即便你仅引入了rewrite-java依赖,默认的源文件扫描范围并不会自动限制为Java文件,因此会尝试解析build.gradle,但该文件属于Groovy/Kotlin语言范畴,缺少对应解析依赖时就会触发报错。
解决方法
方法1:限定仅处理Java源文件
在Gradle配置中明确指定Rewrite仅扫描Java源码目录,修改你的init.gradle或项目build.gradle:
rewrite { activeRecipe("org.openrewrite.java.AddOrUpdateAnnotationAttribute") sources { java { srcDirs = ["src/main/java", "src/test/java"] } } }
配置后,Rewrite只会处理指定路径下的Java文件,不再扫描build.gradle。
方法2:直接排除特定文件
如果需要保留其他源类型扫描,仅排除build.gradle,可添加排除规则:
rewrite { activeRecipe("org.openrewrite.java.AddOrUpdateAnnotationAttribute") sources { all { exclude("**/build.gradle") } } }
内容的提问来源于stack exchange,提问作者MGK
相关产品推荐
相关产品推荐

