前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Gradle | allprojects ,根 repositories 区别是什么?

Gradle | allprojects ,根 repositories 区别是什么?

作者头像
Petterp
发布2022-02-09 14:28:40
发布2022-02-09 14:28:40
1.1K00
代码可运行
举报
文章被收录于专栏:JetPackJetPack
运行总次数:0
代码可运行

开发良久一直不是很明白(说白了还是懒),上述的关系到底是什么区别,于是就没太注意,直到 Jenkins打包时发现(本地打包没遇到过):

找不到 fragment-ktx:1.2.4 这个依赖,而且离奇的是,它居然去 fabric 的仓库底下去找,这就很离奇。一顿思考,先是尝试更改优先级也无济于事,最后狠心删除了爱彼迎仓库,换成了优先阿里云依赖,于是解决了这个比较 简单 的问题。

代码语言:javascript
代码运行次数:0
运行
复制
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }

反思,为什么会出现这个问题呢?

如上述所示,我们一般的项目都有后两者,特别是中间的 build.gradle 缺少了其,项目根本无法正常打包。

真相

app->build.gradle

buildScript 块 的repositories主要是为了Gradle脚本自身的执行,获取脚本依赖插件。(注意:上图的方式个是为了依赖本地的lib包)。

build.gradle

根级别repositories 主要是为了当前项目提供所需依赖包,比如log4j、spring-core等依赖包可从mavenCentral仓库获得。

build.gradle->all

allprojects块repositories 用于多项目构建,为所有项目提供共同所需依赖包。而子项目可以配置自己的repositories以获取自己独需的依赖包。

注意事项

慎用 mavenLocal

参考

Gradle中的依赖管理

google开发者

buildScript块、allprojects块、根级别三种所属的repositories区别

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 反思,为什么会出现这个问题呢?
  • 真相
    • app->build.gradle
    • build.gradle
    • build.gradle->all
  • 注意事项
    • 慎用 mavenLocal
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档