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

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

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



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

maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }

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

app->build.gradle build.gradle build.gradle->all


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

真相

app->build.gradle

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

build.gradle

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

build.gradle->all

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

注意事项

慎用 mavenLocal

目录
相关文章
|
Java Maven
【笔记04】下载、配置 MAVEN(配置 MAVEN 本地仓库)(MAVEN 的 setting.xml)
下载、配置 MAVEN(配置 MAVEN 本地仓库)(MAVEN 的 setting.xml)
4454 0
【笔记04】下载、配置 MAVEN(配置 MAVEN 本地仓库)(MAVEN 的 setting.xml)
|
5月前
|
缓存 IDE Java
maven install报错原因揭秘:‘parent.relativePath‘指向错误的本地POM文件
在使用Maven构建项目时,遇到'parent.relativePath'错误通常是由于父项目POM路径设置错误、版本不一致或内容不匹配导致的。解决方法包括:校正父项目POM的相对路径、确保版本一致、保持POM文件内容同步,并排查其他潜在问题,如子模块命名冲突和Maven缓存问题。通过这些步骤可解决该错误,避免项目构建失败。
maven install报错原因揭秘:‘parent.relativePath‘指向错误的本地POM文件
|
3月前
|
Java Maven Windows
Maven 引用jar包冲突 Intellij 查找排除JAR包的依赖关系(Maven Helper)
Maven 引用jar包冲突 Intellij 查找排除JAR包的依赖关系(Maven Helper)
51 0
|
4月前
|
Java Maven 开发者
gradle项目对比maven项目的目录架构以及对gradle wrapper的理解
gradle项目对比maven项目的目录架构以及对gradle wrapper的理解
44 0
|
4月前
|
IDE Java Maven
Unable to import Maven project,Maven依赖全爆红的问题解决
Unable to import Maven project,Maven依赖全爆红的问题解决
|
5月前
|
Java Maven Kotlin
在 build.gradle.kts 添加 阿里云仓库
在 build.gradle.kts 添加 阿里云仓库
480 0
|
6月前
|
缓存 Java API
build.gradle文件介绍,gradle版本对应
build.gradle文件介绍,gradle版本对应
166 0
|
Java Maven 开发者
Maven deploy配置方法
Maven deploy配置方法
912 0
|
Oracle Java 关系型数据库
自定义jar优雅地放进本地maven仓库
如何在自己本地maven仓库中使用自己打包的jar?
648 0
自定义jar优雅地放进本地maven仓库
|
缓存 监控 JavaScript
深入了解gradle和maven的区别
深入了解gradle和maven的区别
深入了解gradle和maven的区别