gradle set up

C:\Users\Administrator.gradle\gradle.properties

config 复制代码
## For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
#
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx1024m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. For more details, visit
# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
# org.gradle.parallel=true
#Fri Aug 01 12:16:42 CST 2025
systemProp.http.proxyHost=proxy.app
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=proxy.app
systemProp.https.proxyPort=8080

C:\Users\Administrator.gradle\init.gradle.kts

config 复制代码
val CENTRAL_URL = "https://repo.maven.apache.org/maven2"
val JCENTER_URL = "https://jcenter.bintray.com"
val GOOGLE_URL = "https://dl.google.com/dl/android/maven2"
val GRADLE_PLUGIN_URL = "https://plugins.gradle.org/m2"

val MIRROR_CENTRAL_URL = "https://maven.aliyun.com/repository/central"
val MIRROR_JCENTER_URL = "https://maven.aliyun.com/repository/jcenter"
val MIRROR_GOOGLE_URL = "https://maven.aliyun.com/repository/google"
val MIRROR_GRADLE_PLUGIN_URL = "https://maven.aliyun.com/repository/gradle-plugin"

val mirrorMap = mapOf(
    CENTRAL_URL to MIRROR_CENTRAL_URL,
    JCENTER_URL to MIRROR_JCENTER_URL,
    GOOGLE_URL to MIRROR_GOOGLE_URL,
    GRADLE_PLUGIN_URL to MIRROR_GRADLE_PLUGIN_URL
)

fun String.normalizeUrl(): String = this.trimEnd('/')


fun RepositoryHandler.replaceWithMirrorRepos(logger: Logger) {
    val mavenRepos = this.toList()
        .filterIsInstance<MavenArtifactRepository>()
        .associateWith { it.url.toString().normalizeUrl() }
    
    val applyRepos = mavenRepos.filter { (_, url) -> 
        mirrorMap.containsKey(url) && !mavenRepos.containsValue(mirrorMap[url])
    }

    applyRepos.forEach { (repo, url) ->
        val mirrorUrl = mirrorMap[url]!!
        val nrp = maven { setUrl(mirrorUrl) }
        remove(nrp)
        val index = indexOf(repo)
        add(index, nrp)
        remove(repo)
        logger.lifecycle("添加镜像(${index}): $url -> $mirrorUrl")
    }
    applyRepos.keys.forEach { repo ->
        addLast(repo)
    }
}


gradle.settingsEvaluated {
    pluginManagement {
        repositories {
            replaceWithMirrorRepos(logger)
        }
    }
    dependencyResolutionManagement {
        repositories {
            replaceWithMirrorRepos(logger)
        }
    }
}

allprojects {
    buildscript {
        repositories {
            replaceWithMirrorRepos(logger)
        }
    }
    repositories {
        replaceWithMirrorRepos(logger)
    }
}
相关推荐
非专业程序员Ping1 天前
HarfBuzz概览
android·ios·swift·font
Jeled1 天前
「高级 Android 架构师成长路线」的第 1 阶段 —— 强化体系与架构思维(Clean Architecture 实战)
android·kotlin·android studio·1024程序员节
明道源码1 天前
Kotlin 控制流、函数、Lambda、高阶函数
android·开发语言·kotlin
消失的旧时光-19431 天前
Kotlin × Gson:为什么遍历 JsonObject 要用 entrySet()
android·kotlin·数据处理·1024程序员节
G果1 天前
安卓APP页面之间传参(Android studio 开发)
android·java·android studio
曾凡宇先生1 天前
无法远程连接 MySQL
android·开发语言·数据库·sql·tcp/ip·mysql·adb
zhangphil1 天前
Android GPU的RenderThread Texture upload上传Bitmap优化prepareToDraw
android
柿蒂1 天前
聊聊SliverPersistentHeader优先消费滑动的设计
android·flutter
假装多好1231 天前
android三方调试几个常用命令
android·1024程序员节·三方,gms
侧耳4291 天前
android11禁止安装apk
android·java·1024程序员节