maven-metadata.xml 在构建时不断收到请求

ant*_*009 3 android gradle android-studio build.gradle

AGP 4.2.2
gradle-6.7.1
arcticfox 2020.3.1    
Run Code Online (Sandbox Code Playgroud)

每次我构建我的 android 项目时,我都会看到这个 maven-metadata.xml ,它似乎只是减慢了构建速度,而且它似乎挂在那里。每次构建可能需要 10 分钟。

有办法避免这种情况吗?

Gradle: Download maven-metadata.xml...

当我运行命令行时,我看到这一点:

在此输入图像描述

这是我的 gradle.properties

org.gradle.jvmargs=-Xmx8g -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=256m -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configureondemand=true

kotlin.coroutines=enable
kotlin.code.style=official
kapt.use.worker.api=true
kapt.incremental.apt=true

android.enableD8.desugaring=true
android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)

我正在使用 build.gradle(app) 中指定的一些 Maven 存储库:

maven { url "https://www.jitpack.io" }
maven { url 'http://......./repo/maven2' }
maven { url "https://....../repositories/snapshots" }
maven { url 'https://....../maven/release' }
maven { url "http://......./bintray.com/maven" }
maven { url "https://....../objectbox/objectbox" }
Run Code Online (Sandbox Code Playgroud)

Chr*_*iki 5

Gradle通常需要下载一个maven-metadata.xml文件,如果

\n
    \n
  1. 您对依赖项之一使用动态/变化的版本,并且
  2. \n
  3. 依赖项缓存中的生存时间 (TTL)已结束。
  4. \n
\n

对于(1),您应该寻找类似1.2.3-SNAPSHOT1.2.+在您声明的依赖项上的版本(或为./gradlew dependencies简单起见而在)。如果您有此类版本,您真的需要它们吗?使用像这样的固定版本1.2.3应该更快。

\n

对于 (2),您是否可能更改了默认 TTL 阈值,或者您是否始终使用 进行构建--refresh-dependencies?如果不是,那么缓慢的发生频率至少不应超过每天一次。

\n

如果上面的\xe2\x80\x99没有帮助,那么也许尝试使用--info或运行你的构建--info --refresh-dependencies并仔细观察日志输出。这应该显示哪个依赖项和/或哪个存储库是罪魁祸首(即,日志记录停留时间最长的那个)。如果你发现这样的罪魁祸首,那么你可以调查类似的事情

\n
    \n
  • 替换依赖项(或存储库),
  • \n
  • 提高存储库服务器或网络的速度,或者
  • \n
  • 从有问题的文件中删除旧的快照版本maven-metadata.xml(如果您控制存储库)。
  • \n
\n

如果所有这些仍然没有\xe2\x80\x99 出现可操作的项目,那么也许值得maven-metadata.xml在 Gradle 依赖项缓存中寻找更大的文件。也许重复下载如此大的文件是问题所在,之前列表中的方法之一可能会有所帮助。Here\xe2\x80\x99 是如何查找 10 个最大maven-metadata.xml文件的想法(使用 Unix shell 命令):

\n
find ~/.gradle/caches/modules-2/resources-* \\\n        -name maven-metadata.xml \\\n        -printf \'%s\\t%p\\n\' \\\n    | sort -k1 \\\n    | tail\n
Run Code Online (Sandbox Code Playgroud)\n