Jitpack发布Android库报buildscript块需在plugins块前错误如何解决?
解决方案
出现该报错的核心原因是Gradle 7.0+对构建脚本的结构做了严格限制:所有buildscript{}块必须出现在任意plugins{}块之前。你本地配置里虽然buildscript写在plugins前面,但Jitpack构建时会自动在项目级build.gradle头部插入预置配置,导致你原本的buildscript块被移动到了plugins块之后,触发语法校验错误。
你可以按照以下步骤修复:
- 直接删除项目级build.gradle中你定位到的
plugins配置块:
plugins { id "com.jfrog.bintray" version "1.8.4" }
你已经在buildscript.dependencies中引入了bintray插件的classpath依赖,不需要再在项目级的plugins块中带版本声明引用该插件,模块级build.gradle中不带版本号的插件声明可以直接继承项目级classpath中配置的插件版本,不会影响后续使用。
- 如果你仅需要发布库到Jitpack,不需要用到Bintray能力,可以直接移除所有
com.jfrog.bintray相关的classpath依赖和插件声明,Jitpack发布不需要依赖该插件,仅需配置android-maven-gradle-plugin即可完成发布逻辑。 - 如果确实需要在项目级声明
plugins块,可以将所有buildscript中的classpath依赖都调整为plugins块的带版本声明,完全移除buildscript块即可避免顺序冲突。
内容的提问来源于stack exchange,提问作者SIDDHARTH SINGH
相关产品推荐
相关产品推荐

