[Java] Почему maven? Каковы преимущества?



Answers

Maven можно рассматривать как полный инструмент разработки проектов, а не только инструмент сборки, такой как Ant. Вы должны использовать Eclipse IDE с плагином maven, чтобы исправить все ваши проблемы.

Вот несколько преимуществ Maven, приведенных в « Преимущества использования страницы Maven :

Henning

  • быстрая настройка проекта, отсутствие сложных файлов build.xml, просто ПОМ и переход
  • все разработчики проекта используют одни и те же jar-зависимости из-за централизованного POM.
  • получение ряда отчетов и показателей для проекта «бесплатно»,
  • уменьшить размер распределения источников, поскольку банки можно вытащить из центрального расположения

Эммануэль Венис

  • существует множество целей, поэтому нет необходимости разрабатывать какую-то конкретную часть процесса сборки, противоречащую ANT, мы можем повторно использовать существующие задачи ANT в процессе сборки с помощью antrun-плагина

Джесси Макконнелл

  • Способствует модульной конструкции кода. упрощая управление проектами mulitple, он позволяет планировать дизайн в несколько логических частей, объединяя эти части вместе с использованием отслеживания зависимостей в файлах pom.
  • Обеспечивает модульную конструкцию кода. легко оплачивать обслуживание в режиме модульного кода, но когда код находится в отдельных проектах компиляции, невозможно перекрещивать опытные ссылки между модулями кода, если вы специально не разрешаете его в управлении зависимостями ... нет «я буду просто сделайте это сейчас и исправьте его позже.
  • Управление зависимостями четко объявлено. с механизмом управления зависимостями вы должны попытаться испортить ваше управление версиями баннеров ... нет никакой классической проблемы «какая версия этого вендора поставщика это?» И настройка его на существующий проект разрывает верхнюю часть существующего беспорядка, если он существует, когда вы вынуждены делать «неизвестные» версии в вашем репозитории, чтобы все было в порядке и работает ... что или ложь себе, что вы знаете фактическая версия ABC.jar.
  • сильный типизированный жизненный цикл существует сильный определенный жизненный цикл, который система программного обеспечения проходит от начала построения до конца ... и пользователям разрешено смешивать и сопоставлять свою систему с жизненным циклом, а не сворачивать свой собственный жизненный цикл. . Это имеет дополнительное преимущество, позволяющее людям переходить от одного проекта к другому и говорить с использованием того же словаря с точки зрения создания программного обеспечения

Винсент Массол

  • Большой импульс: Ant теперь устарел и не продвигается вперед. Maven быстро продвигается вперед, и есть потенциал иметь много полезных инструментов вокруг Maven (проект CI, Dashboard, интеграция IDE и т. Д.).
Question

Каковы основные преимущества использования maven по сравнению с let's say ant? Кажется, это больше раздражает, чем полезный инструмент. Я использую maven 2, с простой Eclipse Java EE (без m2eclipse) и tomcat.

Сторонники maven считают, что

  1. Maven позволяет легко устанавливать ваши зависимости в пакетах

  2. Maven заставляет вас иметь стандартную структуру каталогов

По моему опыту

  1. Выяснить зависимости пакетов на самом деле не так сложно. Вы редко это делаете. Возможно, один раз во время настройки проекта и еще немного во время обновлений. С maven вы в конечном итоге исправляете несоответствующие зависимости, плохо написанные посты и все равно делаете исключения пакетов.

  2. Медленный цикл FIX-COMPILE-DEPLOY-DEBUG, который убивает производительность. Это моя главная проблема. Вы вносили изменения, вам нужно подождать, пока maven build не начнет работать, и дождитесь его развертывания. Никакого горячего развертывания.

Или я просто делаю это неправильно? Пожалуйста, укажи меня в правильном направлении, я все уши.




Maven может обеспечить преимущества для вашего процесса сборки, используя стандартные соглашения и методы для ускорения вашего цикла разработки, в то же время помогая вам достичь более высоких показателей успеха. Для более детального изучения того, как Maven может помочь вам в процессе разработки, обратитесь к разделу «Преимущества использования Maven».




Я никогда не сталкивался с точкой 2? Можете ли вы объяснить, почему вы считаете, что это влияет на развертывание каким-либо образом. Если что-либо maven позволяет вам структурировать ваши проекты модульным способом, который фактически позволяет исправлять ошибки для ошибок на определенном уровне и позволяет независимую разработку API из остальной части проекта, например.

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




Maven - это один из инструментов, в котором вам нужно фактически решить , что вам нравится, и вы хотите его использовать, поскольку вы потратите некоторое время на его изучение и сделав это решение раз и навсегда, вы сможете пропустить все виды сомнений во время обучения (потому что вам это нравится и вы хотите использовать его)!

Сильные соглашения помогают во многих местах, таких как Хадсон, которые могут творить чудеса с проектами Maven, но это может быть трудно понять изначально.

edit: Начиная с 2016 года Maven - это единственный инструмент построения Java, в котором все три основные среды IDE могут использовать исходные коды из коробки. Другими словами, использование maven делает вашу сборку IDE-агностикой. Это позволяет, например, использовать профилирование Netbeans, даже если вы обычно работаете в eclipse




Links