2015-07-24 4 views
2

У меня есть несколько модулей, и каждый модуль использует ту же самую зависимость. Поскольку это раздражает, чтобы поддерживать эту зависимость во всех файлах build.gradle (обновления версий и т. Д.), Я хотел бы иметь это в проекте build.gradle. Возможно ли это?Зависит от области видимости проекта студии Gradle для Android

Я попытался:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.2.3'   
     compile 'joda-time:joda-time:2.8.1' 
    } 
} 
allprojects { 
    repositories { 
     jcenter() 
    } 
} 

, но это не работает, как это кажется, что Gradle не в состоянии найти DSL для компиляции. Есть ли другой способ, пожалуйста?

Спасибо

ответ

2

Это называется централизовать поддержка библиотек зависимостей в Gradle. Работая с проектом с несколькими модулями, очень полезно централизовать зависимости, особенно библиотеки поддержки.

http://gmariotti.blogspot.in/2015/07/how-to-centralize-support-libraries.html

+1

Кажется legit.Though Я искал если есть способ записать его только в верхнем уровне build.gradle и поместить его в allprojects часть или что-то :) – bakua

0

Поправьте меня, если я ошибаюсь, но что внутри buildscript являются зависимостями для сборки.

Когда я произвожу мой проект build.gradle есть примечание:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.2.3' 
     classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.1.1' 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

Так нет, вы не можете поместить зависимости для все модуля здесь, но может быть, есть плагин для этого.

0

Вы не можете централизовать зависимости для всех (суб) проектов, но очень просто централизовать номера версий. В build.gradle в корне добавить следующее:

ext { 
    jodaTimeVersion = '2.8.1' 
} 

И в build.gradle модулей, которые нуждаются в Joda времени добавить это (обратите внимание на двойные кавычки):

dependencies { 
    compile "joda-time:joda-time:${jodaTimeVersion}" 
} 
Смежные вопросы