2010-08-20 6 views
14

Хотелось бы узнать причины, по которым люди используют или не используют Maven. Мы собираемся переключить все наши сборки на Maven 2 и вам не нужно многому научиться.Каковы преимущества/недостатки использования Maven?

Каковы преимущества/недостатки использования Maven 2, такие вещи, как:

  • Почему вы переключаетесь на Maven?
  • Почему вы выбрали maven и использовали что-то еще?
  • В чем проблема: решить для вас?
  • Какая проблема возникла причина для вас?

Спасибо!

ответ

10

Я использовал maven в каждом проекте, который я встречал за последние 4 года или около того, начиная от частных мини-проектов и заканчивая огромными корпоративными проектами с дюжинами модулей, и я ни разу не сожалел об использовании maven.

Я построил что-нибудь из стандартных проектов Java JAR/WAR/EAR сгибать приложения/AIR и RPMs Linux с использованием Maven, делегируя либо Antrun или GMaven, когда нет Maven плагин не был доступен для данной ситуации.

Мощный и комфортный стандартный жизненный цикл maven в сочетании с обилием доступных плагинов для генерации кода, документации, метрик кода и т. Д., Которые обычно являются простыми в использовании, делает maven единственным реальным выбором для систем сборки java.

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

+0

Я полностью согласен. С polyglot maven вам больше не нужно использовать xml, который, на мой взгляд, является одним из недостатков maven. Для сложных проектов pom быстро становится очень большим. С другой стороны, если вы используете редактор pom, такой как тот, который предоставляется m2eclipse, вам не нужно иметь дело с ним напрямую для большинства случаев. Тем не менее правила polyglot maven :) –

1

Я начал с maven, и я остаюсь с ним. Когда я создаю проект с maven, у меня никогда не бывает проблем с отсутствующими библиотеками, неправильными версиями библиотек ... Он компилируется, он запускается.

Обновление библиотек прост (не как Ant).

Maven предоставляет множество полезных плагинов. Я использую maven для запуска тестирования функциональности на hudson - он загружает новейшую версию моего проекта, запускает внедренную базу данных, внедряет набор данных dbunit, развертывает приложение на причале, запускает тест, отображает результаты теста.

Одна вещь, которая мне не нравится, это иметь все в одном файле. Затем я хотел бы указать конфигурацию не только с использованием XML.

4

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

Repository менеджеры свободно доступны, и я рекомендовал бы установить одно из следующих действий:

  • Nexus
  • Artifactory
  • Archiva

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

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

Проекты ANT могут быть перепроектированы для взаимодействия с командами, использующими Maven. Плагин ivy, применяемый правильно, может фактически упростить процесс сборки ANT. Ivy способен управлять маршрутом класса проекта, загружая зависимости из репозитория Maven и впоследствии публикуя артефакты сборки (точно так же, как «развертывание Maven»).

Наконец ivy был встроен в другие инструменты для сборки. Примерами являются новые инструменты построения, такие как Gradle, simple-build-tool и системы разработки, такие как Grails. Поэтому включите использование репозитория Enterprise Maven и выберите инструмент построения, подходящий для команды проекта.

0

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

Я могу добавить, что потенциальная опасность использования Maven заключается в том, что если вы работаете над большим проектом, может оказаться трудно поддерживать банки в хранилище. Вы можете в конечном итоге использовать несколько разных версий баннеров в POM.xml.

Как и в любом проекте, убедитесь, что у вас есть хорошая политика и процедуры для ввода разных баннеров в базу кода. Эти банки могут иметь разные лицензии, которые могут предоставить вашу базу кода в мире с открытым исходным кодом. Убедитесь, что эти лицензии просмотрены вами.

+0

Maven решила конкретную проблему, которая должна была эффективно выполнять управление зависимостями, когда их не было, или было одно из них, с Ivy. Лично для больших многопрограммных программ работы рано или поздно вам придется посмотреть на эффективную POM_, и именно там я нахожу, что Maven становится неуправляемым или трудным в управлении ... ЕСЛИ вы дисциплинированы с самого начала. Именно поэтому Gradle для меня, с точки зрения этой точки зрения, гораздо удобнее, не портит Maven из-за сильных сторон основных компонентов, а когда дело доходит до сложности, более управляемо. Это до вас, хотя. – Beezer

6

Maven - это фантастика!

У меня нет столько времени, чтобы воск лирический, как хотелось бы, но вот мои главные несколько преимуществ Maven, в частности, нет порядка:

  • Повторяется строит: если вы можете создать проект , ваши коллеги всегда смогут на своих машинах. Он также будет повторяться на сервере сборки.
  • Стандартизация системы сборки: новые разработчики, которые несут ответственность за Maven, будут мгновенно знать, как создавать, выпускать, тестировать и т. Д., Удаляя много накладных расходов на обучение.
  • Фокус на автоматизации: Maven ставит вас в сознание автоматизации процессов вокруг разработки вашего программного обеспечения.
  • Консолидация конфигурации: нет никакой настройки или минимальной конфигурации, необходимой для сборки артефактов.
  • Управление зависимостями: Maven будет решать и управлять вашими зависимостями для вас.
  • Тестирование: возможность запуска тестов и интеграционных тестов как часть жизненного цикла вашего проекта.
  • Плагины: есть тысячи плагинов для выполнения различных задач. Они просто настраиваются только путем добавления ссылки в POM.

Что касается недостатков, то часто говорят, что вам лучше принять условия по умолчанию и условные обозначения Maven, и в идеале начать использовать его в начале проекта нового проекта. Я согласен с этим в какой-то степени, если вы хотите сэкономить время на настройку XML в POM.

Я не являюсь орудием фанатиков, но, пользуясь Make и Ant перед Maven, я действительно не вижу ни малейшего недостатка в принятии Maven. Это качественный инструмент и экономия времени в реальном времени.

4

Пока мне это не нравится. Когда я использую maven, время сборки для проекта резко возрастает. От нескольких мс до секунды на просто затмение, до более 30 секунд даже для самого простого проекта maven.

Учитывая, что так много людей нравится, я должен делать что-то неправильно, но пока я не могу понять, почему для создания проекта на основе maven требуется много времени.

Смежные вопросы