Gradle Multiproject зависимость замены - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь настроить локальный проект сборки в Gradle прямо сейчас. Composite Build не работает, так как у меня есть несколько названных ограничений. Цель: любой разработчик может собрать все приложение локально, используя свои проверенные локальные ветви. В настоящее время у нас есть 14 различных git проектов, но для этого примера я уменьшу количество. Я только что перешел на gradle 6.1.1 в надежде, что это поможет, но не помогло. Ранее мы использовали 4.10.3.

Я создал мастер-проект (M), который следует настройке мультипроекта Gradle. Settings.gradle импортирует все различные проекты, я добавил их в зависимости, исключил модули, чтобы они не были извлечены из нексуса, и теперь возникла проблема с указанными c артефактами проекта.

В следующем примере зависимости существует: у меня есть 2 отдельные службы (S1 и S2), которые зависят от службы соединителя (CS). У CS есть sourceSet api , который содержит интерфейсы API и еще несколько объектов, которые я хочу показать внешнему миру. S1 и S2 имеют строгую зависимость от CS-api.jar, а не CS.jar. M теперь не может оценить скрипты Gradle, потому что он не может найти артефакт CS-api.jar в проекте: CS

root project 'M': Web Facets / Артефакты не будут настроены должным образом
Подробности: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration $ ArtifactResolveException: Не удалось разрешить все файлы для конфигурации ': runtimeClasspath'. Вызвано: org.gradle.internal.resolve.ArtifactNotFoundException: Не удалось найти CS-api.jar (проект: CS).

Я попытался настроить атрибуты Gradles, как описано в документации и это не помогло. Я пробовал составную сборку, которая не работает. Я попытался настроить параметры артефакта / конфигурации, чтобы указать оператор реализации на задачу создания артефакта CS-api.jar.

Никогда не удается разрешить зависимость с помощью локального исходного кода.

...