首页 > 解决方案 > Gradle 尝试从错误的存储库下载

问题描述

我的 Android APP 仅指向我的内部 Artifactory。但是当它尝试从 jcenter.bintray 下载 play-services-base 时构建中断

有趣的是,无论是在项目级别还是模块/应用程序级别,我都不会在 build.gradle 中引用 jcenter。

play-services-base 在我的 jfrog 中可用。

我尝试先运行 ./gradlew 任务以强制 gradle 在构建之前下载依赖项。

在我的项目级别 build.gradle

allprojects {
    apply plugin: "com.jfrog.artifactory"

    ...

    repositories {
        maven {
            url "${rootDir}/react-native/android"
        }
        maven {
            url 'http://fakeurl/from_artifactory/repository'
            credentials {
                username = "fakeuser"
                password = "fakepassword"
            }
        }
    }
}

build.gradle 模块级别

api "com.google.android.gms:play-services-gcm:$gcm_version"
api "com.google.android.gms:play-services-maps:$gcm_version"
api "com.google.android.gms:play-services-vision:$gcm_version"
api 'com.google.android.gms:play-services-analytics:16.0.3'

错误:

> Could not resolve com.google.android.gms:play-services-base:[15.0.1,16.0.0).
  Required by:
      project :module1 > project :module2 > com.google.android.gms:play-services-gcm:15.0.1
      project :module1 > project :module2 > com.google.android.gms:play-services-maps:15.0.1
      project :module1 > project :module2 > com.google.android.gms:play-services-vision:15.0.1
      project :module1 > project :module2 > com.google.android.gms:play-services-gcm:15.0.1 > com.google.android.gms:play-services-iid:15.0.1
      project :module1 > project :module2 > com.google.android.gms:play-services-vision:15.0.1 > com.google.android.gms:play-services-vision-common:15.0.1
      project :module1 > project :module2 > com.google.android.gms:play-services-vision:15.0.1 > com.google.android.gms:play-services-vision-common:15.0.1 > com.google.android.gms:play-services-clearcut:15.0.1
      project :module1 > project :module2 > com.google.android.gms:play-services-vision:15.0.1 > com.google.android.gms:play-services-vision-common:15.0.1 > com.google.android.gms:play-services-clearcut:15.0.1 > com.google.android.gms:play-services-phenotype:15.0.1

166 actionable tasks: 166 executed
   > Failed to list versions for com.google.android.gms:play-services-base.
      > Unable to load Maven meta-data from https://jcenter.bintray.com/com/google/android/gms/play-services-base/maven-metadata.xml.
         > Could not get resource 'https://jcenter.bintray.com/com/google/android/gms/play-services-base/maven-metadata.xml'.
            > Could not GET 'https://jcenter.bintray.com/com/google/android/gms/play-services-base/maven-metadata.xml'.
               > Connect to jcenter.bintray.com:443 [jcenter.bintray.com/52.40.226.158, jcenter.bintray.com/52.11.213.218] failed: connect timed out

标签: androidmavengradleartifactory

解决方案


我没有看到您在 build.gradle 中有“play-services-base”作为要求,所以我猜它是您正在提取的一个或多个包的依赖项。我的猜测是,您要提取的其中一个包的“pom.xml”文件将此包作为依赖项引用,并将 JCenter URL 硬编码为“pom.xml”。您将需要找到这个“pom.xml”文件并将 URL 从 JCenter 更改为您的 Artifactory 实例。


推荐阅读