Как завершить сборку maven, если в хранилище существует более новая версия зависимости?
Проблема в том, что я хочу, чтобы maven проверял версию зависимости при сборке и предупреждал меня, если есть какие-либо более новые версии зависимостей (на самом деле - сообщите мне, если я использую устаревшую версию какого-либо модуля). Мой модуль maven A имеет следующую зависимость:
<dependency>
<groupId>com.example.mycompany</groupId>
<artifactId>commons</artifactId>
<version>1.0.3</version>
</dependency>
А также com.example.mycompany:commons
модуль по сути уже может иметь 1.0.4
версия. Есть ли способ проверить версию зависимости в репозитории и завершить сборку, если более новая версия уже доступна.
я надеюсь, что versions-maven-plugin
может сделать это. Но я не могу найти подходящую конфигурацию.
2 ответа
Эта проблема может быть решена с помощью плагина maven -forcecer-plugin. Вы должны создать свое собственное пользовательское правило, потому что ни одно из стандартных правил не соответствует вашим потребностям.
Понятие правила, которое вы собираетесь реализовать, должно предусматривать обновление зависимостей. Чтобы реализовать проверку, вы можете получить вдохновение от упомянутого вами плагина версии-maven.
Если вы используете систему контроля версий и сервер непрерывной интеграции (что является безопасным допущением), вы можете:
- используйте плагин версий и дайте ему изменить пом
- затем используйте scm:check-local-ification или плагин релиза в качестве плагина релиза. IIRC проверяет наличие локальных модификаций.
Вот пример проверки последнего родительского pom:
mvn versions:update-parent scm:check-local-modification -DallowSnapshots=false -DgenerateBackupPoms=false