Как отсортировать зависимости в разделе файла POM Maven - PullRequest
3 голосов
/ 24 сентября 2019

Мне нужно отсортировать зависимости в разделе dependencyManagement файла POM, который используется в качестве родительского для всех проектов портфеля моей команды.

Мотивация для этого аналогична описанной здесь .В моем случае я просто пытаюсь согласовать версии, используемые во всем нашем портфолио, чтобы избежать постоянного кошмара расхождений в версиях: из-за копирования-вставки некоторые проекты используют версию зависимости, а другие используют другую версию.Другая мотивация - иметь только одно место, где можно управлять зависимостями.То, что я делаю, - это объединение спецификаций зависимостей из всех модулей в гигантский раздел dependencyManagement родительского POM.

Однако эта задача требует, чтобы я определил версию каждой зависимости в нашем родительском POM.Делая так, я обнаруживаю, что помещаю спецификацию зависимостей где-то в растущий список зависимостей.Все сложнее добавить зависимость и выяснить, указана ли уже зависимость.Но было бы намного проще, если бы я мог отсортировать зависимости, например, по идентификатору группы.

Существует ли плагин, который служит для переупорядочения зависимостей?В качестве последнего средства я напишу небольшую программу, которая будет читать XML-файл из родительского POM и выводить его отсортированным.

1 Ответ

0 голосов
/ 27 сентября 2019

Недавно выпущенная версия 0.2.0 BOM Helper Maven Plugin теперь имеет цель sort, которая именно это и делает.

Вам нужно добавить плагин к вашей поме:

<plugin>
    <groupId>com.commsen.maven</groupId>
    <artifactId>bom-helper-maven-plugin</artifactId>
    <version>0.2.0</version>
</plugin>

Вы можете настроить его для запуска при каждой сборке, но я бы предпочел запускать его вручную только при добавлении / изменении зависимости,Что-то вроде:

mvn bom-helper:sort -Dbom-helper.inplace=true

должен сделать эту работу. См. Документы для получения дополнительных опций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...