, предположим, что следующий проект. мастер проект является мульти-проект, однако каждая часть более крупного проекта могут быть разработаны по отдельности или в смеси в:Транзитная зависимость дополнительного транзистора подпроекта должна быть разрешена к существующему подпроекту
/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
, что хорошо, но как я могу сказать, что град использовать локальную версию m1
вместо испеченного артефакта?
Я застрял в этом, каждое место у меня есть, чтобы переопределить эту вещь. Gradle дает мне «просто» ModuleVersionSelector
уровень доступа, как я могу добавить DefaultProjectDependency
в соответствии с загруженными переходными зависимостями артефакта?
У меня может быть альтернатива, если я могу получить доступ к полному графику зависимостей архивных артефактов и внести некоторые переопределения/исключения.
EDIT:
лучшее, что я придумал использует фильтр, используя resolutionStrategy, я создал пример путем дальнейшего развития проекта «Великий упруго-DEPS»
https://github.com/kgyrtkirk/elastic-deps
Мы уже реализовали его ... мы изучаем возможности наличия sub2 из бинарного артефакта, и в этом случае транзитивность транзита Sub3 разрешается двоичным ... что не желательно –
Хорошо, вы не упомянули об этом. Я не уверен, что и как хорошо это может быть достигнуто с нынешним Gradle. Боюсь, вам придется копать глубже. –