[关闭]
@act262 2017-07-12T02:07:08.000000Z 字数 2252 阅读 1070

gradle使用国内源加速构建

gradle


直接移除jcentermavenCentral,增加指定的maven

  1. allprojects{
  2. repositories {
  3. def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
  4. all { ArtifactRepository repo ->
  5. if(repo instanceof MavenArtifactRepository){
  6. def url = repo.url.toString()
  7. if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
  8. project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
  9. remove repo
  10. }
  11. }
  12. }
  13. maven {
  14. url REPOSITORY_URL
  15. }
  16. }
  17. }
  1. allprojects{
  2. repositories {
  3. def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
  4. all { ArtifactRepository repo ->
  5. if(repo instanceof MavenArtifactRepository){
  6. def url = repo.url.toString()
  7. if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
  8. project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
  9. remove repo
  10. }
  11. }
  12. }
  13. maven {
  14. url REPOSITORY_URL
  15. }
  16. }
  17. }

不移除默认的jcentermavenCentral,在前面增加指定的maven

i.e.

  1. allprojects{
  2. // 这里指定的是buildscript的repo
  3. buildscript{
  4. repositories{
  5. maven{
  6. url 'http://maven.aliyun.com/nexus/content/repositories/' url
  7. }
  8. }
  9. }
  10. // 这里指定的是project的repo
  11. repositories {
  12. println '优先使用aliyun maven'
  13. maven {
  14. url 'http://maven.aliyun.com/nexus/content/repositories/'
  15. }
  16. }
  17. }

把这段script放到当前项目的build.gradle或者全局的init.gradle
直接移除默认源有时候不够好,有时候我们指定的源可能网络问题访问不了,这时候就需要通过默认的源来访问。
在不改变各个原项目配置的情况下,建议使用全局配置初始化脚本的方式来做比较好。

附上init.gradle

  1. def gradle = getGradle()
  2. println "***************************************************"
  3. println "Dump gradle information"
  4. println "Version:${gradle.getGradleVersion()}"
  5. println "UserHomeDir:${gradle.getGradleUserHomeDir()}"
  6. println "HomeDir:${gradle.getGradleHomeDir()}"
  7. println "***************************************************"
  8. // Jinfuzi Maven credentials
  9. def NEXUS_SERVER = "http://nexus.jfz.com/content/groups/public"
  10. def NEXUS_USERNAME = "developer"
  11. def NEXUS_PASSWORD = "jinfuzi2014"
  12. // 阿里云 maven 服务器
  13. def MAVEN_ALIYUN = 'http://maven.aliyun.com/nexus/content/groups/public'
  14. allprojects {
  15. buildscript {
  16. repositories {
  17. maven {
  18. credentials {
  19. username NEXUS_USERNAME
  20. password NEXUS_PASSWORD
  21. }
  22. url NEXUS_SERVER
  23. }
  24. maven {
  25. url MAVEN_ALIYUN
  26. }
  27. jcenter()
  28. }
  29. }
  30. repositories {
  31. maven {
  32. credentials {
  33. username NEXUS_USERNAME
  34. password NEXUS_PASSWORD
  35. }
  36. url NEXUS_SERVER
  37. }
  38. maven {
  39. url MAVEN_ALIYUN
  40. }
  41. jcenter()
  42. }
  43. }

参考:https://docs.gradle.org/current/userguide/init_scripts.html

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注