Мультимодульное управление релизами проекта Maven

У меня есть проект Maven, который выглядит следующим образом:

 - enterprise-pom

 - commons

 - core
   - domain
   - dao
   - search
   - importer-batch-app
   - processor-batch-app

 - systems
   - server-system
   - client-system

ядро зависит от предприятия-пом и общего.

Я просто работал над выпуском 3.0.0 ядра, выполнив:

Release 3.0.0 of enterprise-pom
Release 3.0.0 of commons
Release 3.0.0 of core

Все они на 3.0.1-SNAPSHOT и есть тег, созданный для 3.0.0 в SVN.

Мы не хотели выпускать системы. Так что все еще на 3.0.0-SNAPSHOT.

Вопрос:

Должен ли я вручную изменить системный pom на 3.0.1-SNAPSHOT, не отпуская его (так как он вообще не будет использоваться)?

Системы зависят от ядра. и зависимость все еще находится в 3.0.0-SNAPSHOT, в настоящее время. К чему это обновление?

1 ответ

Решение

Как часто бывает ответ: это зависит.

Номер версии системы:

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

Если субмодули имеют и будут иметь разные циклы выпуска, не меняйте их вручную.

Системная зависимость:

если ваши разработчики открывают все сразу в своей IDE, вы должны вручную настроить зависимость на 3.0.1-SNAPSHOT, чтобы не перепутать их. Если они открывают подпроект по подпроекту, вы должны изменить зависимость на выпущенную версию 3.0.0 и обработать ее так же, как любую другую стороннюю библиотеку.

Если по существу все имеют одинаковый цикл выпуска, но пока вы не хотите делать системные артефакты общедоступными, вы также можете отключить развертывание этих артефактов:

        <plugin>
            <artifactId>maven-deploy-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>

и просто отпустить все вместе

Другие вопросы по тегам