Maven 3 – Стоит?

Maven 3 beta выходит с двух недель, и я просто хочу получить ваши взгляды на список функций для Maven 3. Потому что для меня добавлены только две основные функции

  1. Параллельное выполнение проекта в жизненном цикле сборки
  2. Пользовательский жизненный цикл

Все остальное выглядит как исправление ошибки или незначительное улучшение. Так что ты думаешь? Будет ли Maven 3 стоить ждать?

Что нового в Maven 3? Вот небольшая assembly того, что вы можете найти в сети.

  • Обратная совместимость – Maven 3 имеет обратную совместимость, что чрезвычайно важно (особенно для тех, кто испытал переход Maven 1 к Maven 2).
  • Бесстрашные родительские элементы – Maven 3 удалит необходимость указывать родительскую версию в дополнительных модулях. Это здорово (в Maven 3.1).
  • Mixins – для состава POM (в Maven 3.1 AFAIK).
  • Формат XML POM с использованием атрибутов. Вы можете использовать атрибуты вместо элементов.
  • Polyglot Maven – вы можете писать свои POM-файлы сейчас на разных языках (меня лично не раздражает формат XML, поэтому я не уверен, что часто буду использовать это).
  • Точки расширений – Чтобы украсить жизненный цикл или плагины (чтобы зависеть от поведения, а не расширения плагинов).
  • Queryable lifecycle – Развязка планов выполнения и выполнения.
  • Изменения в Plugin-API. Это больше ориентировано на разработчиков плагинов (annotations вместо тегов javadoc, точек расширения, повторяющегося жизненного цикла).
  • Лучшая отчетность об ошибках и целостности. Ошибки более ясны и связаны с wiki Maven 3 для подробного объяснения. Пользователям это понравится.
  • Mercury – полностью переписать систему разрешения артефактов (теперь это выделенный продукт). На самом деле, Maven 3 использует Aether вместо Mercury.
  • Maven Embedder – это отлично подходит для IDE и создания инструментов (которые могут «слушать» процесс сборки).
  • Поддержка инкрементной сборки – особенно полезна для M2Eclipse (большой прирост производительности).
  • Сайт и отчетность, извлеченные из основного сайта Maven, пока не работают (будут исправлены окончательные версии) , отчетность (но вам предлагается использовать внешние инструменты качества, такие как Sonar).
  • Maven shell – оптимизированная среда исполнения (Maven Shell – это потрясающе ).

Подводя итог, вы не совсем ошибаетесь, на поверхности не так много изменений (хотя мне действительно нравится лучшая отчетность об ошибках и просто не могу дождаться материальных элементов без версии). Но изменения под капотом делают Maven 3 намного быстрее, и это огромно. И я ожидаю, что с новыми предлагаемыми возможностями (но еще впереди) появятся большие инновации.

В конце концов, улучшения производительности уже достаточно, чтобы сделать его стоящим для меня (создание за меньшее время чрезвычайно ценно ), а другие вещи – бонусы. И поскольку я не использую плагин сайта широко, я уже использую Maven 3 более 4 месяцев на некоторых своих assemblyх, и я более чем доволен им.

Смотрите также

  • Руководство по Maven 3 Beta
  • Maven перезагрузился (из devoxx)
  • Предварительный просмотр Maven 3.x
  • Что нового в Maven 3
  • Джейсон ван Зил о будущем Maven: Maven 3

Идея Maven 3 заключалась в том, чтобы заменить Maven 2 без проблем … в настоящее время есть некоторые (в частности, сайт). Я бы предложил протестировать существующие Maven 2 проекты с Maven 3, чтобы увидеть, если возникнут некоторые проблемы. Внутренне полный код был реорганизован и т. Д., Чтобы сделать возможными новые улучшения. Удалены некоторые части из ядра (например, создание сайта и т. Д.).

Нет, это не совместимо, как говорит matrix. Существует много несовместимых между 2 и 3, и существует поведение, указывающее на страницу. Если вы работаете над корпоративными проектами в корпорации, вы можете быть уверены, что столкнетесь с этими проблемами.

Что касается производительности, если вы запускаете сборки предприятия, которые не строят код 10k-100k … Как насчет системы 1,5 миллиона строк? Это более распространено на предприятии. Если ваше программное обеспечение составляет 2-4 часа, и вам по-прежнему нужна постоянная интеграция, вы будете изучать параллельную сборку и тестирование. Maven 3 подходит именно в этот момент … но на данный момент недопустимо, что разрешение дерева / путь к classам различно в зависимости от цели (зависимость: дерево использует устаревший механизм, а регулярные цели сборки зависят от эфира). Это напоминает проблемы с Ivy / Ant, когда вы не можете полагаться на проверку classа пути до пакета программного обеспечения для развертывания (у вас нет местного репозитория Maven на производстве, не так ли? … но вам все равно нужно выполнять проверки программного обеспечения, не так ли?)

Они удалили опцию «-r» и заменили ее на чрезвычайно сложную систему.

Maven поощряет копирование / вставку попов. Я надеялся, что они исправит это в 3.0. Они сбросили функцию «mixins» до maven 3.1.

Помимо производительности сборки и нескольких мелких исправлений ошибок, это не стоит проблем.

  • Как вы эффективно справляетесь с моментальными снимками maven-3?
  • Импорт зависимостей Maven в IntelliJ IDEA
  • Как использовать общий файл build.gradle через repository?
  • Действительная подпись JAR для проектов JavaFX
  • Maven: жизненный цикл против фазы против плагина против цели
  • Готово ли Maven для JDK9?
  • Maven Не удалось разрешить зависимости, артефакты не могут быть разрешены
  • Как включить тестовые classы в банку Maven и выполнить их?
  • Не удалось выполнить цель org.apache.maven.plugins: maven-compiler-plugin: 2.3.2: компиляция (компиляция по умолчанию)
  • Давайте будем гением компьютера.