Зависимости между проектами в модуле - PullRequest
0 голосов
/ 05 сентября 2018

Допустим, у вас есть 4 проекта в зависимости друг от друга в цепочке: A зависит от B, B зависит от C, C зависит от D. Все проекты построены с использованием Maven.

Как лучше синхронизировать свои версии, чтобы при обновлении проекта D или C сборка проекта A не нарушалась?

1 Ответ

0 голосов
/ 06 сентября 2018

Идея Maven заключалась в том, чтобы включить модульность в различные проекты. Это делает команды, работающие над этими проектами, независимыми, и они могут работать над соответствующими модулями, не беспокоясь о других командах.

Но мы можем столкнуться с ситуациями, когда была опубликована новая версия зависимого проекта, и мы не знаем об этом. Если вы используете Maven 2 для решения этой проблемы, вы можете использовать команду <version>LATEST</version> в файле pom.xml для этой конкретной зависимости. Так было бы как -

 <dependency>
    <groupId>javax.portlet</groupId>
    <artifactId>portlet-api</artifactId>
    <version>LATEST</version>
 </dependency>

Но это было прекращено с Maven 3. Согласно официальной ноте от Maven -

Разрешение метаверсии плагина Внутренне Maven 2.x использовал специальный маркеры версий RELEASE и LATEST для поддержки автоматической версии плагина разрешающая способность. Эти метаверсии были также признаны в элемент для объявления. Ради воспроизводимого сборок, Maven 3.x больше не поддерживает использование этих метаверсий в ПОМ. В результате пользователи должны будут заменить вхождения этих метаверсии с конкретной версией.

Так что желательно всегда использовать конкретные версии.

Однако, если вы все еще хотите использовать последние версии зависимостей, вы можете использовать приведенную ниже команду в командной строке Maven -

mvn версии: использовать последние версии

...