Очевидно, что если вы не укажете версию плагина компилятора Maven, Maven 2.2.1 просто выдаст вам v2.0.2.
Да, начиная с Maven 2.0.9 (см. MNG-3395 ) версии основных и общих плагинов исправлены в super POM и обнаружение отключенных версий плагинов Maven для buildВоспроизводимость .
Наш проект использует более 15 плагинов Maven.К некоторым из них мы хотим привязать определенную версию, но большую часть (например, плагин компилятора) мы хотели бы обновить, не думая об этом.
Как указывалось выше, этоплохая идеяВы просто не хотите, чтобы сборка maven внезапно начинала давать сбой из-за какого-либо обновления плагина.Другими словами, вы должны использовать фиксированные версии, а это не плохая практика .Фактически, Maven 3.0 продвигает эту практику и предупреждает вас, если вы этого не сделаете.А в 3.1, вам нужно будет указать версию (см. MNG-1968 ).
Лично я использую правило Maven Enforcer и его Требование версий плагинов для применения этой практики (что означает, что сборка не удастся, если вы не заблокируете ее).версии плагинов).
Есть ли способ сделать это автоматически с Maven, или нам нужно поручить кому-то неблагодарное занятие по исследованию возможных обновлений плагинов Maven каждый месяц, а затем менять версию PluginManagementчисла в родительском POM?
Как и предполагалось, у Versions Maven Plugin есть цели, позволяющие проверить, есть ли более свежие версии плагинов, зависимостей и т. д. (и заметить, что -cpu
устарела в Maven 3.0 и будет удалена из будущих версий).
Но реальный вопрос: почему вы хотите всегда использовать окончательные версии?ИМО, для этого нет веских причин, вам следует обновляться, только если есть что-то, что нужно исправить ( ", если оно не сломано, не исправляйте" ).
Итог: используйте фиксированные версии плагинов и забудьте автоматические обновления, диапазоны версий и т. Д.