syntax - Gradle多个编译依赖项语法

标签 syntax configuration compilation gradle

我试图在Gradle 1.12中声明一个编译依赖,其中有多个项目共享相同的exclude子句(这是为了避免在各处重复进行排除)。我知道我可以做这样的事情:

configurations {
    compile.exclude group: 'com.google.gwt'
    all*.exclude group: 'com.google.guava'
}

但这会影响所有配置。我想要的是这样的东西(它在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'
    }

因此,我可以将需要排除的所有依赖关系集中在一起,并且仍然可以在其他地方使用:
compile 'com.google.guava:guava:17.0'

更新:
为了澄清,我唯一的目标是替换这段代码:
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
}

像这样简短而甜美的东西(目前无法正常工作):
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!
}

最佳答案

在仍然能够使用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'
    }
]

然后,您可以在需要的地方重复使用这些声明(例如dependencies { compile libs.error_data_io };也可以在子项目中使用)。如果确实需要,还可以在多个声明之间共享同一{ exclude ... }块(通过将其分配给局部变量)。

关于syntax - Gradle多个编译依赖项语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23508612/

相关文章:

ruby - Ruby/Rails 4-UsersController#show中的SyntaxError

Linux内核编译错误

compilation - elm-brunch watch 缺少我的一些 Elm 文件更改

c++ - 是 "long long"= "long long int"= "long int long"= "int long long"吗?

c++ - 用于在 C++ 中访问数组的代码混淆

syntax - java代码中的Scala : $colon

C# 在内存中编译并创建内存组件类型的实例

c# - 我如何设置 log4net 每天将我的文件记录到不同的文件夹中?

java - 使用@PropertySource配置Spring属性

java - 如何将配置设置注入(inject) Autowiring 的 spring bean?