2016-11-10 6 views
0

Когда вы определяете проект с несколькими модулями в Maven, у вас есть один корневой проект и его модули. Когда вы создаете корневой проект, Maven transitivelly строит все свои модули в правильном порядке. До сих пор очень похож на Gradle.Gradle Maven как проект с несколькими модулями

Но с Maven вы можете клонировать только один субмодуль из репозитория и строить его локально, без необходимости загружать всю структуру проекта. Это связано с тем, что вы определяете зависимости от других модулей в рамках одного и того же проекта, как и любая другая внешняя зависимость, и загружается и кэшируется из вашего локального репозитория (Nexus).

С помощью Gradle вы определяете зависимости кросс-модулей как compile project(':other'). Таким образом, вам нужно клонировать всю структуру проекта из хранилища, чтобы правильно решить и построить. Есть ли способ использовать поддержку проектов с несколькими модулями Gradle без необходимости локального клонирования всей структуры проекта?

ответ

0

Я бы сказал, что поддержка мультимодуля Maven является ударом по мысли. В отличие от Gradle, зависимость от проекта не является концепцией первого класса. Вместо этого «реактор» maven заменяет локальные артефакты для зависимостей, когда соответствует GAV (группа/артефакт/версия).

Если вы хотите использовать тот же подход в Gradle, вы можете указать свои зависимости, используя нотацию GAV, а затем использовать новый composite build feature, чтобы объединить две или более отдельные сборки градиента вместе и заменить зависимости репозитория для локальных зависимостей источника. Обратите внимание, что вы можете определить проекты, включенные в составной, используя groovy, чтобы вы могли легко создавать сценарий на основе пользовательской логики (например, если в какой-либо корневой папке существует подпапка)

Обратите внимание, что поддержка композитных построений - это new feature added in Gradle 3.1. До Gradle 3.1 вы можете использовать Prezi Pride для достижения того же

Смежные вопросы