Gradle:从编译闭包中排除并包含多个组/模块

时间:2015-07-09 07:03:13

标签: gradle

这个语法可能尚未提供,但我要求避免冗余代码。 现在我要排除像这样的罐子

 compile ('com.mygroup:myJar:0.1.1-M1-SNAPSHOT+') {
    exclude group: 'org.apache.xmlgraphics'
    exclude group:'org.apache.avalon.framework'
    exclude group:'net.engio'
    exclude group: 'com.google.guava'
}

如何在一行代码中排除多个组/模块,例如,此语法

compile ('com.mygroup:myJar:0.1.1-M1-SNAPSHOT+'){
    exclude group: ['org.apache.xmlgraphics', 'org.apache.avalon.framework', 'net.engio', 'com.google.guava']
}

或者是否有其他短代码可以做同样的事情。

谢谢。

2 个答案:

答案 0 :(得分:5)

你可以这样做:

compile ('com.mygroup:myJar:0.1.1-M1-SNAPSHOT+'){
    ['org.apache.xmlgraphics', 'org.apache.avalon.framework', 'net.engio', 'com.google.guava'].each {
        exclude group: it
    }
}

请注意,这是利用Groovy功能,而不是Gradle功能。

另请注意,我不认为include在此上下文中是一件事(请参阅方法摘要here)。

答案 1 :(得分:0)

compile ('com.mygroup:myJar:0.1.1-M1-SNAPSHOT+'){dep ->
    ['org.apache.xmlgraphics', 'org.apache.avalon.framework', 'net.engio', 'com.google.guava'].each {group -> dep.exclude group: group }
}

请参阅this