Android Gradle Build尝试访问JCenter,即使我没有在任何地方配置它

问题描述 投票:4回答:1

我们的Android版本正在我们公司的CI构建代理上运行。这些没有Internet访问权限,必须从我们的Artifactory中的虚拟存储库中获取所有Maven依赖项。

我现在注意到所有构建都比我的PC上花了几分钟,显然延迟来自Gradle试图访问JCenter:

build   01-Apr-2019 11:56:44    11:56:43.449 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Opening connection {s}->https://jcenter.bintray.com:443
build   01-Apr-2019 11:56:44    11:56:43.452 [DEBUG] [org.apache.http.impl.conn.DefaultHttpClientConnectionOperator] Connecting to jcenter.bintray.com/18.195.111.75:443
build   01-Apr-2019 11:56:44    11:56:43.452 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Connecting socket to jcenter.bintray.com/18.195.111.75:443 with timeout 30000
build   01-Apr-2019 11:56:44    11:56:43.453 [DEBUG] [org.apache.http.impl.conn.DefaultHttpClientConnectionOperator] Connect to jcenter.bintray.com/18.195.111.75:443 timed out. Connection will be retried using another IP address
build   01-Apr-2019 11:56:44    11:56:43.454 [DEBUG] [org.apache.http.impl.conn.DefaultHttpClientConnectionOperator] Connecting to jcenter.bintray.com/35.156.75.35:443
build   01-Apr-2019 11:56:44    11:56:43.454 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Connecting socket to jcenter.bintray.com/35.156.75.35:443 with timeout 30000

当然,这不起作用,但Gradle似乎一遍又一遍地重试,直到它最终放弃。然后构建仍然有效,因为所有依赖项都可以在Artifactory中使用...

这就是我们当前为Gradle配置存储库的方式:

repositories {
    def artifactoryBaseUrl = "https://artifactory.somecompany.com"
    maven {
        url "${artifactoryBaseUrl}/libs-release-local"
    }
    maven {
        url "${artifactoryBaseUrl}/google-maven"
    }
    maven {
        url "${artifactoryBaseUrl}/fabric-maven"
    }
    maven {
        url "${artifactoryBaseUrl}/maven-central"
    }
    maven {
        url "${artifactoryBaseUrl}/gradle-plugins"
    }
    maven {
        url "${artifactoryBaseUrl}/jitpack-maven"
    }
}

正如你所看到的,根本没有提到JCenter - Gradle如何决定它是否想要访问它并且有什么方法可以禁用它?

我在日志中的某个地方看到了这个,但不知道它来自哪里:

build   01-Apr-2019 11:40:23    11:40:22.351 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.modulecache.ResolvedArtifactCaches] Creating new in-memory cache for repo 'BintrayJCenter' [1dd858de07b774d6be9d3e38c5646087].
maven gradle android-gradle bamboo jcenter
1个回答
1
投票

Gradle构建只有一个默认存储库:用于解析Gradle插件的Gradle插件门户,它只能用于解析构建脚本classpath依赖项而不是项目依赖项。

如果您看到您的构建试图访问JCenter,那么导入的构建文件或插件很可能是其来源。

© www.soinside.com 2019 - 2024. All rights reserved.