我有一个多子模块项目,其中一些子模块依赖于其他子模块。
例如,对于子模块a,b,c和d,
b depends on a
c depends on b
d depends on a
因此,如果我有一个需要b,c和d的单独项目,它们各自的R类将保存模块a的资源副本。有没有办法以某种方式排除,所以用户没有重复的资源?各个资源的ID似乎在整个R类中保持一致,所以我不确定它们是否实际上是为每个子模块新生成的。
一种方法是使用@aar依赖项,但这会排除所有依赖项,包括那些不重复的依赖项。如果可能的话,我想避免让用户自己包含这些依赖项。
另一种方式似乎是使用provided
而非compile
,但这不适用于图书馆。
我知道的最后一种方法是让用户在其gradle文件中排除子依赖项,但如果可能,我还想尝试直接在库中管理它。
是否有任何建议,或者这是我不应该担心的事情?
我的实际库可以找到here,您可以看到子模块之间存在相当多的相互依赖关系。
快速搜索显示其中一个属性被添加了很多次: