我是新手,在基本问题上挣扎。我在我的项目中声明了一组编译时依赖项。我的问题陈述是,我想让依赖关系的子集不可传递,剩下的是传递。
我尝试进行自编译,从编译扩展并将其传递属性设置为false
。
Customcompile.extendsFrom(compile)
Customcompile.transitive = false
通过这个,我认为无论我宣布什么
Customcompile 'xxx:xxx:1.0'
将应用transitive=false
,并且它将充当编译时依赖项。
但是这不能用这些依赖项编译我的项目
我在这个假设中的任何地方都错了吗?
答案 0 :(得分:21)
您需要将customCompile.extendsFrom(compile)
更改为compile.extendsFrom(customCompile)
。
configurations {
customCompile
customCompile.transitive = false
compile.extendsFrom(customCompile)
}
这是因为编译类路径是从compile
配置的依赖项派生的。
通过从compile
配置扩展customCompile
配置,您现在将customCompile
配置中的所有依赖项都包含在compile
配置中。