2017-02-14 80 views
0

有没有办法告诉Gradle排除特定依赖关系的所有依赖关系,这将从给定的存储库中提取?通过存储库排除依赖关系

从存储库列表中删除该存储库不起作用,因为我需要该存储库用于其他依赖项。但是对于一个特定的组,我想排除可能来自该存储库的所有依赖关系。

喜欢的东西:

dependencies { 
    compile <my_first_package> 
    compile('my_second_package') { 
     exclude repository.name:thirdPartyRepository 
    } 

} 

回答

1

看一下源代码,只有两种可能性如何排除的依赖,那就是exclude by module or a group。您还可以标记依赖不以获取其传递依赖:

compile('my_second_package') { 
    transitive = false 
} 

但是,这一切,似乎没有办法去除基于库的依赖关系。你可以使用ResolutionStrategy强制版本,也许看看有什么可以帮助你的用例。

作为一种解决方法,也许您可​​以使用不同的名称或版本重新打包错误的依赖项。或者您可以使用transitive = false,并简单地添加您实际需要的所有传递依赖项作为声明的依赖项。

+0

谢谢你的回答和你的研究。我想另一个解决方法可能是为给定的依赖关系定义一个存储库。你知道这可能吗? –

+0

我不认为这是可能的。 – sm4