假设以下项目。主项目是多项目,然而,更大的项目的每个部分可单独开发或在混合:应将Gradle多项目可选子项目的传递相关性解析为现有的子项目
/master/build.gradle
/m1/build.gradle
/m2/build.gradle
/m3/build.gradle
假设m3
使用m2
和m2
使用m1
(m1 <- m2 <- m3)
的m2
存在是可选多项目以下布局也合理
/master/build.gradle
/m1/build.gradle
/m3/build.gradle
但在这种情况下m2
会从工件存储库中拉出来,这很好...但是m1
是m2
的传递依赖关系,这很好,但是如何告诉gradle使用本地版本的m1
而不是烘焙的工件?
我一直坚持这个,每个地方我有权访问这些东西gradle给我“只”ModuleVersionSelector
级别的访问,我怎么能根据下载的工件传递依赖关系添加一个DefaultProjectDependency
?
我可以有一个替代方案,如果我可以访问存档的工件的完全依赖关系图,并放入一些覆盖/排除。
编辑:
我想出了利用使用resolutionStrategy过滤器是最好的,我已经通过进一步发展“弹性DEPS”项目创建了一个例子
https://github.com/kgyrtkirk/elastic-deps
我们已经实现了它...我们正在探索从二元伪影中获得sub2的可能性,在这种情况下,sub3的传递性被解析为二进制......这是不需要的 –
好吧,你没有提到这一点。我不确定当前的Gradle能否实现这一目标。恐怕你必须深入挖掘自己。 –