Допустим, у нас есть 3-х слойный проект. БД, Бизнес, Веб и агрегатные пом.
Project
|-DB
| |-pom.xml
|-Business
| |-pom.xml
|-pom.xml
Все модули должны быть выпущены и разветвлены вместе, поэтому модуль агрегатора настроен для назначения одной и той же версии всем подмодулям. У нас есть следующие версии:
DB-0.1-SNAPSHOT
Business-0.1-SNAPSHOT which depends on DB-0.1-SNAPSHOT
Web-0.1-SNAPSHOT which depends on Business-0.1-SNAPSHOT
При выполнении release:prepare
все версии обновляются до 0.1, но подготовка завершается неудачно, потому что DB-0.1
еще не находится в зависимости.
Одно из решений - создавать разные проекты для каждого модуля и выпускать их один за другим, используя плагин versions:use-releases
для обновления зависимости до 0.1.
Но мне не нравится эта идея, потому что она требует большой настройки и написания сценариев. Итак, я предпочитаю использовать агрегацию и выпускать все модули одной командой, но проблема в том, как я писал выше, когда плагин выпуска пытается собрать Business-0.1
, в репозитории еще нет DB-0.1
.
Есть ли способ управлять этими зависимостями между проектами?
Спасибо.
UPD:
даже установить цель не удается.
- Сборка БД - ОК (ни снимка, ни версии выпуска нет ни в одном репозитории)
- Бизнес - Сбой (DB-0.1-SNAPSHOT не найден в репозитории. Но его там даже не должно быть!)
Я использую maven 3.0.2 и выпускаю плагин 2.1