Перенаправление зависимости проекта Gradle от артефакта Maven в другой проект Gradle - PullRequest
0 голосов
/ 13 мая 2018

Есть ли способ перенаправить зависимость проекта Gradle от координат артефакта Maven на выход другого проекта Gradle в той же сборке?

Я не вижу смысла в зависимости от таких вещей, как project(‘:xyz’), поскольку для этого требуется, чтобы проект :xyz был в моей файловой системе и был встроен, а для ссылочного проекта необходимо знать, что :xyz также находится в такая же сборка. Для меня более логично иметь зависимости от координат артефакта Maven и использовать артефакты, созданные из проектов в той же сборке, которые задают совпадающие координаты, вместо загрузки артефакта из хранилища.

Если бы эта функциональность существовала, или если бы я сделал ее сам, я бы подумал, что она будет реализована как объект, который может быть указан в закрытии repositories перед всеми другими репозиториями, такими как mavenCentral().

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

То, что вы ищете, это составные сборки . Это позволит вам определить, что сборка включает другую сборку, и, таким образом, Gradle выяснит, что нотация зависимостей group:name:version заменяется включенной сборкой.

Однако я бы по-прежнему рекомендовал использовать нотацию project(:xyz), когда проекты принадлежат одному и тому же модулю, что обычно представляет собой однократную проверку из системы контроля версий.

0 голосов
/ 13 мая 2018

Вы можете опубликовать xyz в своем локальном хранилище.

В проекте xyz используйте этот плагин:

apply plugin: 'maven-publish'

И просто беги gradle publishToMavenLocal

Затем в проекте «root» дополнительно используйте локальный репозиторий и используйте xyz в качестве обычной зависимости:

repositories {
    mavenLocal()
}

dependencies {
    compile('your.company:xyz:1.0.0')
}
...