1
2
3
4
5
|
> Failed to list versions for xxx.
> Unable to load Maven meta-data from https://jcenter.bintray.com/xxx.xml.
> Could not HEAD 'https://jcenter.bintray.com/xxx.xml'.
> Read timed out
|
作为一个刚接触android(RN)不久的小白,某天跑项目发现,一些依赖下不下来,并出现了上面👆的报错,起初以为是梯子的问题,几经排查却发现。是仓库关服了,卧槽,公共仓库关服了,当时把我惊呆了。这个被关闭的仓库就是JCenter。
JCenter的镜像仓库对原仓库的拷贝也不是很到位,所以需求找到适合的代替品;而且node_modules
里也有项目是依赖JCenter的,这就意味着最好是全局修改。
几经调查,我发现可以用这两个仓库
- gradlePluginPortal()
- mavenCentral()
替换
- JCenter()
至于全局替换需要在这个文件里~/.gradle/init.gradle
(没有就新增),增加以下脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
allprojects{
repositories {
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
if (repo.url.toString().startsWith('https://jcenter.bintray.com/')) {
project.logger.warn "Repository ${repo.url} removed."
remove repo
mavenCentral()
gradlePluginPortal()
}
}
}
}
}
|
如果你是RN用户,可能要在项目里的build.gradle
文件里加上,能保证你的RN不用旧版本。
1
2
3
4
5
6
7
8
9
10
11
|
allprojects{
repositories {
mavenCentral {
// We don't want to fetch react-native from Maven Central as there are
// older versions over there.
content {
excludeGroup "com.facebook.react"
}
}
}
}
|
参考链接
jitpack 可以很方便的把git repo转成maven依赖,可以用于查缺补漏
阿里仓库服务