# Gradle 南大源采用了阿里云(central + jcenter + gradle-plugin),腾讯云(central+jcenter+google)和 maven central 官方的混合形式。 gradle 和 maven 使用的是同一个仓库,不过配置方法略有区别。 注意,南大镜像同时提供 gradle 二进制文件下载,将项目文件下的 `gradle\wapper\gradle-wrapper.properties` 的 `distributionUrl` 修改为 `http://mirror.nju.edu.cn/gradle/gradle-[version].zip` 即可,详细版本请[参考链接](http://mirror.nju.edu.cn/gradle)。 ## 全局配置 配置当前登录用户使用南大源,如果未修改过 gradle 的默认配置文件位置,请如下操作: - linux 用户在终端中输入以下命令: ```shell mkdir ~/.gradle vim ~/.gradle/init.gradle ``` - windows 用户在 powershell (或者pwsh中) 输入以下命令: ```shell mkdir ~/.gradle cd ~/.gradle notepad init.gradle ``` 覆盖写入以下内容: ```gradle allprojects { buildscript { repositories { def NJU_REPOSITORY_URL = 'https://repo.nju.edu.cn/repository/maven-public/' all { ArtifactRepository repo -> if (repo instanceof MavenArtifactRepository) { def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2')) { project.logger.lifecycle "Repository ${repo.url} replaced by $NJU_REPOSITORY_URL." remove repo } if (url.startsWith('https://jcenter.bintray.com/')) { project.logger.lifecycle "Repository ${repo.url} deleted." remove repo } if (url.startsWith('https://dl.google.com/dl/android/maven2/')) { project.logger.lifecycle "Repository ${repo.url} deleted." remove repo } if (url.contains('plugins.gradle.org/m2')) { project.logger.lifecycle "Repository ${repo.url} deleted." remove repo } } } maven { url NJU_REPOSITORY_URL } mavenLocal() } } repositories { def NJU_REPOSITORY_URL = 'https://repo.nju.edu.cn/repository/maven-public/' all { ArtifactRepository repo -> if (repo instanceof MavenArtifactRepository) { def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2')) { project.logger.lifecycle "Repository ${repo.url} replaced by $NJU_REPOSITORY_URL." remove repo } if (url.startsWith('https://jcenter.bintray.com/')) { project.logger.lifecycle "Repository ${repo.url} deleted." remove repo } if (url.startsWith('https://dl.google.com/dl/android/maven2/')) { project.logger.lifecycle "Repository ${repo.url} deleted." remove repo } if (url.contains('plugins.gradle.org/m2')) { project.logger.lifecycle "Repository ${repo.url} deleted." remove repo } } } maven { url NJU_REPOSITORY_URL } mavenLocal() } } ``` 如果已经运行过 gradle ,请先执行一次 `gradle --stop` 命令关闭所有 gradle 的 daemon, 然后重新运行即可。 ## 项目配置 如果只在某个项目中使用,则在项目的 `build.gradle` 中配置: ```gradle buildscript { repositories { maven { url 'https://repo.nju.edu.cn/repository/maven-public/' } } } plugins { ...[你需要用的 gradle 插件] } allprojects { repositories { maven { url 'https://repo.nju.edu.cn/repository/maven-public/' } } } ``` 注意这样可能有时候无法通过镜像下载部分 gradle 插件。