Hri*_*nov 9 syntax configuration compilation gradle
我试图在Gradle 1.12中声明一个编译依赖项,其中多个项目共享相同的exclude子句(这是为了避免在任何地方重复排除).我知道我可以这样做:
configurations {
compile.exclude group: 'com.google.gwt'
all*.exclude group: 'com.google.guava'
}
Run Code Online (Sandbox Code Playgroud)
但这会影响所有配置.我想要的是这样的(这在Gradle 1.12中不起作用,如下所示):
compile (
["org.jboss.errai:errai-data-binding:2.4.4.Final"]
,["org.jboss.errai:errai-data-ioc:2.4.4.Final"]
){
exclude group: 'com.google.gwt'
exclude group: 'com.google.guava'
}
Run Code Online (Sandbox Code Playgroud)
所以我可以将我需要排除的所有依赖项集中在一个地方,并且仍然可以在其他地方:
compile 'com.google.guava:guava:17.0'
Run Code Online (Sandbox Code Playgroud)
更新: 为了澄清,我的唯一目标是替换这段代码:
compile ('bla.bla.bla:1.0'){
exclude 'same.component:1.0' //Ugly repeat
}
compile ('boo.boo.boo:1.0'){
exclude 'same.component:1.0' //Ugly repeat
}
compile ('uh.uh.uh:1.0'){
exclude 'same.component:1.0' //Ugly repeat
}
compile ('oh.oh.oh:1.0'){
exclude 'same.component:1.0' //Ugly repeat
}
Run Code Online (Sandbox Code Playgroud)
像这样的短暂和甜蜜(目前不工作):
compile( 'bla.bla.bla:1.0'
,'boo.boo.boo:1.0'
,'uh.uh.uh:1.0'
,'oh.oh.oh:1.0'
)
{
exclude 'same.component:1.0' //Only once! Sweet!
}
Run Code Online (Sandbox Code Playgroud)
在仍然能够使用compile 'com.google.guava:guava:17.0'语法的情况下,无法将每个依赖项排除在外.configurations.compile.exclude ...只会影响compile配置(以及从中继承的配置),并且几乎总是优先于每个依赖项排除.
另一种解决方案是将依赖性声明分解为:
ext.libs = [
error_data_ioc: dependencies.create("org.jboss.errai:errai-data-ioc:2.4.4.Final") {
exclude group: 'com.google.gwt'
exclude group: 'com.google.guava'
}
]
Run Code Online (Sandbox Code Playgroud)
然后,您可以在任何需要的地方重用这些声明(例如dependencies { compile libs.error_data_io };也可以从子项目开始工作).如果你真的想要,你也可以{ exclude ... }在多个声明中共享相同的块(通过将它分配给局部变量).
| 归档时间: |
|
| 查看次数: |
4236 次 |
| 最近记录: |