2014-11-21 1 views
4

Работая с Gradle в моей стране, загрузка банок из maven central - это очень своевременная работа.
Я хочу изменить mavenCentral в Maven-нексус:
, что означает каждый раз, когда я использую mavenCentral это всегда указывает на oschinaИзменить Gradle mavenЦентральный адрес моего репо

------ редактировать ------
У меня есть много проектов с mavenCentral, поэтому я не хочу менять каждый файл.

Теперь в новых скриптах я использую maven {url ...} Любой простой способ ??

Любой может проскальзывать?
Спасибо!

ответ

11

Самый простой способ применить это изменение для всех проектов - использовать скрипт init, который заставляет использовать репозиторий oschina вместо mavenCentral. вы можете поместить это:

allprojects{ 
    repositories { 
     all { ArtifactRepository repo -> 
      println repo.url.toString() 
      if ((repo instanceof MavenArtifactRepository) && repo.url.toString().startsWith("https://repo1.maven.org/maven2")) { 
       project.logger.warn "Repository ${repo.url} removed. Only $coporateRepoUrl is allowed" 
       remove repo 
      } 
     } 
     maven { 
      url "http://maven.oschina.net/content/groups/public" 
     } 
    } 
} 

в файл инициализации градиента. Теперь вы можете использовать это, вызвав «gradle build -I yourInitFile.gradle», или вы поместите эту логику в файл init.gradle, который хранится в вашем домашнем каталоге gradle в каталоге USER_HOME/.gradle/. Теперь это будет подбираться каждым вызовом градимента без явной установки -I

Другим вариантом является создание специального распределения градиентов, где этот файл хранится в каталоге init.d дистрибутива.

5

Его легко! Вместо этого:

repositories { 
    mavenCentral() 
} 

Используйте это:

repositories { 
    maven { 
     url "https://..." 
    } 
} 
+0

Вы также можете попробовать 'jcenter()', см. Это сообщение: http: // stackoverflow.com/questions/24852219/android-buildscript-repositories-jcenter-vs-mavencentral – Blacklight

+0

@Toochka Спасибо за ваш ответ, но это не совсем то, что я хочу. Я редактирую свой вопрос. – acntwww

+0

@acntwww Вы хотите использовать тот же URL-адрес и (если необходимо), чтобы изменить его в * только * в одном месте? – Toochka

3

Просто настроить репозиторий в build.gradle файл в каталоге вашего модуля, например:

repositories { 
    maven { url "http://maven.oschina.net/content/groups/public" } 
} 
+0

Спасибо за ваш ответ, но это не совсем то, что я хочу. Я редактирую свой вопрос. – acntwww

0

Если у вас есть много зависимостей (т.е. во всех build.gradle файлов) и для URL-адресов репозитория вы используете

repositories { 
    maven { 
     url "https://www.myrepourl.com" 
    } 
} 

но вы хотите изменить этот адрес только один файл, то сделайте следующее:

  • Создать gradle.properties файл и там добавить следующую строку: REPO_URL= https://www.myrepourl.com
  • Во всех остальных build.gradle копирования файлов следующее:

    repositories { 
        maven { 
         url project.REPO_URL 
        } 
    } 
    

Вы можете добавить & использовать больше свойств таким образом. Это работало как прелесть для меня. Ура!

+0

Вы поняли это? –

+0

Этот вопрос мне адресован? – Toochka