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']
}

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

谢谢。

您可以这样做:

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在这种情况下是一件事(请参阅此处的方法摘要(。

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 }
}

请参阅此。

最新更新