DRY,有更好的gradle依赖声明吗?
有没有更好的方法来声明来自同一组(例如com.android.support)的多个包(例如“appcompat-v7”)的同一版本(例如“23.4.0”)呢 实际申报:DRY,有更好的gradle依赖声明吗?,gradle,dependency-management,Gradle,Dependency Management,有没有更好的方法来声明来自同一组(例如com.android.support)的多个包(例如“appcompat-v7”)的同一版本(例如“23.4.0”)呢 实际申报: ... def androidSupport = '23.4.0' def rxBinding = '0.4.0' dependencies { ... // android support compile "com.android.support:appcompat-v7:$androidSupp
...
def androidSupport = '23.4.0'
def rxBinding = '0.4.0'
dependencies {
...
// android support
compile "com.android.support:appcompat-v7:$androidSupport"
compile "com.android.support:design:$androidSupport"
compile "com.android.support:percent:$androidSupport"
// rxJava
compile "com.jakewharton.rxbinding:rxbinding:$rxBinding"
compile "com.jakewharton.rxbinding:rxbinding-support-v4:$rxBinding"
compile "com.jakewharton.rxbinding:rxbinding-appcompat-v7:$rxBinding"
compile "com.jakewharton.rxbinding:rxbinding-design:$rxBinding"
compile "com.jakewharton.rxbinding:rxbinding-recyclerview-v7:$rxBinding"
...
有可能做那样的事吗
...
compile(group: 'com.android.support', version: '23.4.0') {
modules: "appcompat-v7", "design", "percent"
}
...
一旦您意识到Gradle构建脚本只是一个Groovy脚本,这意味着这些“编译”行中的每一行都只是方法调用,您就开始看到许多可能性
例如,指定工件名称的“内联”数组,对其调用“each()”,并传递一个闭包,该闭包指定“
编译组:$it:$version
”(或类似的内容)。一旦您意识到Gradle构建脚本只是Groovy脚本,这意味着这些“编译”行中的每一行都只是方法调用,你开始看到许多可能性
例如,指定工件名称的“内联”数组,对其调用“each()”,并传递一个闭包,该闭包指定“compilegroup:$it:$version
”(或类似的内容)。def multiArtifactDependency={String group,String version,List artifacts->artifacts.each{compile”${group}:${it}:${version}
multiArtifactDependency('com.android.support','23.3.0',['appcompat-v7','design']))
multiArtifactDependency('com.squareup.Refundation2'、'2.0.2'、['Refundation'、'converter gson'、'adapter rxjava']))
def multiArtifactDependency={String group,String version,List artifacts->artifacts.each{compile“${group}:${it}:${version}
multiArtifactDependency('com.android.support','23.3.0',['appcompat-v7','design']))
multiArtifactDependency('com.squareup.Refundation2'、'2.0.2'、['Refundation'、'converter gson'、'adapter rxjava']))
def multiArtifactDependency = { String group, String version, List<String> artifacts -> artifacts.each { compile "${group}:${it}:${version}" } }
multiArtifactDependency('com.android.support', '23.3.0', ['appcompat-v7', 'design'])
multiArtifactDependency('com.squareup.retrofit2', '2.0.2', ['retrofit', 'converter-gson', 'adapter-rxjava'])