Gradle构建Groovy文件报MacroTransformation无法运行等错误如何解决
问题原因
这两个报错均由Groovy版本不兼容导致,通常是项目依赖存在多版本Groovy冲突、或者项目指定Groovy版本与Gradle内置Groovy版本不匹配,引发抽象类方法缺失、AST转换组件加载失败的问题。
排查解决步骤
- 统一全局Groovy版本
打开根目录build.gradle文件,确保所有Groovy相关依赖(包括groovy、groovy-all、groovy-macro、groovy-astbuilder等)版本完全一致,禁止跨大版本混用(如同时引入3.x和4.x版本组件)。多模块项目建议在根项目ext块统一定义版本号,所有子模块引用统一变量:// 根项目build.gradle定义 ext { groovyVersion = '4.0.15' // 选择与当前Gradle版本兼容的稳定版即可 } // 子模块依赖写法 implementation "org.codehaus.groovy:groovy:${groovyVersion}" implementation "org.codehaus.groovy:groovy-macro:${groovyVersion}" - 排除传递依赖冲突
执行./gradlew dependencies(Windows环境执行gradlew.bat dependencies)查看依赖树,定位第三方依赖自动引入的异版本Groovy组件,在对应依赖中排除冲突包:implementation('com.example:第三方依赖包名:版本号') { exclude group: 'org.codehaus.groovy' } - 匹配Gradle与Groovy兼容版本
Gradle内置Groovy版本固定,跨版本适配会触发类加载冲突:- Gradle 7.x 系列适配 Groovy 3.x 版本
- Gradle 8.x 系列适配 Groovy 4.x 版本
不要在项目中引入高于当前Gradle内置版本的Groovy组件。
- 清理缓存重试构建
执行./gradlew clean build --refresh-dependencies清理本地构建缓存、刷新依赖后重新构建。如果是IDE缓存导致的异常,直接清理IDE缓存重启即可。
内容的提问来源于stack exchange,提问作者Anly
相关产品推荐
相关产品推荐

