Подтвердить что ты не робот

Maven 3 - Стоит?

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

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

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

4b9b3361

Ответ 1

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

  • Обратная совместимость. 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. Это больше ориентировано на разработчиков плагинов (аннотации вместо тегов javadoc, точек расширения, повторяющегося жизненного цикла).
  • Лучшая отчетность об ошибках и целостности. Ошибки более ясны и связаны с вики Maven 3 для подробного объяснения. Пользователям это понравится.
  • Mercury - Завершите переписывание системы разрешения артефакта (теперь это выделенный продукт) На самом деле, Maven 3 использует Aether вместо Mercury.
  • Maven Embedder - это отлично подходит для IDE и инструментов сборки (которые могут "слушать" процесс сборки).
  • Поддержка инкрементной сборки - особенно полезно для M2Eclipse (повышение производительности).
  • Сайт и отчет, извлеченные из основного ядра Maven - , пока не работают (будут исправлены для окончательной версии), отчетность (но вам предлагается воспользоваться внешними инструментами качества, такими как Sonar).
  • оболочка Maven - оптимизированная среда исполнения (оболочка Maven awesome).

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

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

См. также

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

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

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