Перенаправление зависимости проекта Gradle от артефакта Maven в другой проект Gradle
Есть ли способ перенаправить зависимость проекта Gradle от координат артефакта Maven на выход другого проекта Gradle в той же сборке?
Я не вижу смысла в зависимости от таких вещей, как project(‘:xyz’)
, так как это требует этого проекта :xyz
быть в моей файловой системе и встроенной, и чтобы ссылочный проект знал, что :xyz
также в той же сборке. Для меня более логично иметь зависимости от координат артефакта Maven и использовать артефакты, созданные из проектов в той же сборке, которые задают совпадающие координаты, вместо загрузки артефакта из репозитория.
Если бы эта функциональность существовала, или если бы я сделал это сам, я бы вообразил, что она будет реализована как объект, который можно перечислить в repositories
закрытие перед всеми другими репозиториями, такими как mavenCentral()
,
2 ответа
То, что вы ищете, это композитные сборки. Это позволит вам определить, что сборка включает в себя другую сборку, и, таким образом, Gradle выяснит, что нотация зависимостей group:name:version
заменяется включенной сборкой.
Однако я все равно рекомендую использовать project(:xyz)
примечание, когда проекты принадлежат одному и тому же устройству, что обычно представляет собой единый контроль из системы контроля версий.
Вы можете опубликовать xyz
в вашем локальном хранилище.
В проекте xyz
, используйте этот плагин:
apply plugin: 'maven-publish'
И просто беги gradle publishToMavenLocal
Затем в проекте "root" дополнительно используйте локальный репозиторий и используйте xyz
как регулярная зависимость:
repositories {
mavenLocal()
}
dependencies {
compile('your.company:xyz:1.0.0')
}