Maven Android Gradle Build尝试访问JCenter,尽管我没有在任何地方配置它
我们的Android版本在我们公司的CI版本代理上运行。它们没有internet访问权限,必须从我们的工件库中的虚拟存储库获取它们的所有Maven依赖项 我现在注意到,所有构建都比在我的PC上花费的时间要长几分钟,显然延迟来自Gradle试图访问JCenter:Maven Android Gradle Build尝试访问JCenter,尽管我没有在任何地方配置它,maven,gradle,android-gradle-plugin,bamboo,jcenter,Maven,Gradle,Android Gradle Plugin,Bamboo,Jcenter,我们的Android版本在我们公司的CI版本代理上运行。它们没有internet访问权限,必须从我们的工件库中的虚拟存储库获取它们的所有Maven依赖项 我现在注意到,所有构建都比在我的PC上花费的时间要长几分钟,显然延迟来自Gradle试图访问JCenter: build 01-Apr-2019 11:56:44 11:56:43.449 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Opening connectio
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].
Gradle构建只有一个默认存储库:用于解析Gradle插件的Gradle插件门户,它仅用于解析构建脚本
classpath
依赖项,而不用于解析项目依赖项
如果您看到您的构建试图访问JCenter,那么导入的构建文件或插件很可能就是其来源。很高兴知道,谢谢!我现在发现,这个特殊的问题只在我们的一些构建代理上表现出来,而在其他构建代理上没有表现出来。尽管BintrayJCenter repo已在所有服务器上配置,但实际上只有一些服务器正在尝试访问它……因为在我们的例子中,repo的名称和URL都与
DefaultRepositoryHandler
中定义的常量相匹配(public static final String DEFAULT\u BINTRAY\u JCENTER\u repo\u name=“BintrayJCenter”;公共静态最终字符串BINTRAY_JCENTER_URL=”https://jcenter.bintray.com/“;
)回购最有可能是通过使用快捷方式jcenter()
添加的,对吗?有没有办法找出哪个插件是罪魁祸首?