【发布时间】:2015-10-07 14:41:51
【问题描述】:
在我的顶级 build.gradle 文件的 build.gradle 文件中 - jcenter() 没有专门编写。所以我在顶级 build.gradle 文件中有以下内容:
// 顶级构建文件,您可以在其中添加所有子项目/模块通用的配置选项。
buildscript {
repositories {
//jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
allprojects {
repositories {
//jcenter()
}
}
不知何故,我在模块中定义的所有依赖项仍然可以找到,并且应用程序运行良好。我可以假设 jcenter() 是默认存储库,那么如果没有找到?它是默认使用的吗?否则我的依赖怎么来。另外,如果我想超越 jcenter() 以使用另一个 repo,我将如何做。
如果我有以下自定义存储库会怎样:
buildscript {
repositories {
maven {
url "https://someEnterpriseRepository.com/myRepo"
}
}
这是否意味着它首先检查 maven 自定义 repo,然后在未找到依赖项时检查 jcenter() 吗? 顺便说一句,在测试所有这些之前,我已经从文件中清除了 IDE 缓存->使缓存无效。
【问题讨论】:
-
尝试从命令行运行您的构建。我的猜测是,如果您没有定义存储库,它将失败。当然,这就是我所看到的。不过,我无法解释为什么构建可以在 Android Studio 中运行。
-
进行此更改后,您是否尝试更改依赖项 - 例如任何库的更低或更高版本。这一点很重要——这个库,你将添加/降低/提高以前不能在你的任何项目中使用。我记得在 AS 的最后一次更新中 - 它在您的本地计算机上为所有项目创建 1 个公共存储库,所以如果您在 1 个项目中下载,那么它对所有其他项目都可用
-
你确定它直到为你工作吗?我在 buildscript -> repositories 和 allprojects -> repositories 中评论了 jcenter(),但在 Sync 期间出现错误
-
它可能取决于 gradle 缓存(尝试运行 gradle clean)和您的依赖项。也发布你的 build.gradle。 gradle插件可以缓存。
-
Mateusz Pryczkowski 我按照你的要求做了,并更改了依赖项的版本,但它没有编译,所以我猜你的权利是缓存。
标签: android gradle build.gradle jcenter