在 Gradle 中禁用 jCenter 存储库
Disable jCenter repository in Gradle
在我的 Gradle 项目中,我使用自定义 Maven 存储库来下载我需要的依赖项:
buildscript {
repositories {
maven {
url 'https://maven.my-company.com/'
}
}
}
allprojects {
repositories {
maven {
url 'https://maven.my-company.com/'
}
}
}
我注意到在我们的 Jenkins 上,每个构建都比在我的计算机上花费更多的时间来完成。
在调试标志 (./gradlew --debug --refresh-dependencies clean :app:assembleDebug | grep jcenter
) 的帮助下,我注意到在 jCenter 中查找每个依赖项,即使我将它从 repositories
块中删除:
[DEBUG] [org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor] Constructing external resource: https://jcenter.bintray.com/com/google/firebase/firebase-iid/maven-metadata.xml
由于我们的 Jenkins 无法访问外部网络,这些请求会超时并增加整体构建时间。
在 Gradle 中完全禁用 jCenter(或任何其他未明确定义的存储库)存储库有什么办法吗?
我在 Gradle 的 GitHub 存储库 (issue 10376) 上问了这个问题。
问题不是直接来自我的 Gradle 配置,而是一个添加了 jCenter
存储库本身的插件。
为了找到添加存储库的插件,我创建了一个 init.gradle
脚本,如下所示:
allprojects {
repositories.all {
if (url.host == 'jcenter.bintray.com') {
new Throwable('jcenter repository was just added').printStackTrace()
}
}
}
和运行 ./gradlew --init-script init.gradle help
。在打印的堆栈跟踪中,我可以找到导致问题的插件,在我的例子中 at io.realm.gradle.Realm.apply(Realm.groovy:75)
.
在我的 Gradle 项目中,我使用自定义 Maven 存储库来下载我需要的依赖项:
buildscript {
repositories {
maven {
url 'https://maven.my-company.com/'
}
}
}
allprojects {
repositories {
maven {
url 'https://maven.my-company.com/'
}
}
}
我注意到在我们的 Jenkins 上,每个构建都比在我的计算机上花费更多的时间来完成。
在调试标志 (./gradlew --debug --refresh-dependencies clean :app:assembleDebug | grep jcenter
) 的帮助下,我注意到在 jCenter 中查找每个依赖项,即使我将它从 repositories
块中删除:
[DEBUG] [org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor] Constructing external resource: https://jcenter.bintray.com/com/google/firebase/firebase-iid/maven-metadata.xml
由于我们的 Jenkins 无法访问外部网络,这些请求会超时并增加整体构建时间。 在 Gradle 中完全禁用 jCenter(或任何其他未明确定义的存储库)存储库有什么办法吗?
我在 Gradle 的 GitHub 存储库 (issue 10376) 上问了这个问题。
问题不是直接来自我的 Gradle 配置,而是一个添加了 jCenter
存储库本身的插件。
为了找到添加存储库的插件,我创建了一个 init.gradle
脚本,如下所示:
allprojects {
repositories.all {
if (url.host == 'jcenter.bintray.com') {
new Throwable('jcenter repository was just added').printStackTrace()
}
}
}
和运行 ./gradlew --init-script init.gradle help
。在打印的堆栈跟踪中,我可以找到导致问题的插件,在我的例子中 at io.realm.gradle.Realm.apply(Realm.groovy:75)
.