我有多个模块,每个模块使用完全相同的依赖项。因为在所有build.gradle文件(版本更新等)中维护该依赖项很烦人,我想在项目build.gradle中使用它。这可能吗?
我试图:
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。请问还有其他方法吗?
谢谢
答案 0 :(得分:2)
它被称为在gradle中集中支持库依赖项。使用多模块项目,集中依赖项非常有用,尤其是支持库。
http://gmariotti.blogspot.in/2015/07/how-to-centralize-support-libraries.html
答案 1 :(得分:0)
如果我错了,请纠正我,但内部版本中的内容是构建的依赖项。
当我生成项目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
}
}
所以不,你不能在这里为你的所有模块添加依赖项,但也许有一个插件。
答案 2 :(得分:0)
您无法集中所有(子)项目的依赖项,但很容易集中版本号。在根目录的build.gradle
中添加以下内容:
ext {
jodaTimeVersion = '2.8.1'
}
在build.gradle
需要Joda-Time的模块中添加这个(注意双引号):
dependencies {
compile "joda-time:joda-time:${jodaTimeVersion}"
}