Не мог понять, что такое Maven, глядя на формальные определения - PullRequest
3 голосов
/ 09 марта 2011

Я очень новичок в Java, недавно пытался использовать некоторые существующие библиотеки, и внезапно между ними возникла Maven .Я понятия не имею, читая страницу проекта на веб-сайте Apache, что такое Maven.

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

Любые простые объяснения будут высоко оценены. Спасибо всем большое!

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

Ответы [ 5 ]

4 голосов
/ 09 марта 2011

Maven - продуманное средство построения и система управления зависимостями.

  • инструмент сборки : он обрабатывает процесс превращения ваших .java файлов в .class файлы, возможно преобразовывая ваши ресурсы и упаковывая все в .jar или .war или .ear или .tar.gz или .zip файлов. В этом аспекте он похож на Apache Ant .
  • управление зависимостями : он обрабатывает зависимости: он загружает необходимые библиотеки, также обеспечивает загрузку транзитивных зависимостей (то есть зависимостей зависимостей), обрабатывает конфликтующие номера версий в зависимостях (обычно пытаясь найти библиотеку это соответствует всем требованиям). В этом аспекте он похож на Apache Ivy .
  • уверенный : он поставляется с некоторой конфигурацией по умолчанию, которая определяет макет и процесс сборки вашего проекта. Несмотря на то, что его можно настраивать в широких пределах, эта настройка может стать сложной. Следование предложенным настройкам по умолчанию облегчает использование Maven.

Ключевым понятием в Maven является POM, в котором содержится все, что Maven знает о вашем проекте. Он находится в файле pom.xml. Этот файл также является лучшим признаком того, что в проекте используется Maven.

2 голосов
/ 09 марта 2011

Maven похож на Ant : это инструмент, который помогает автоматизировать компиляцию, упаковку и развертывание приложений.

Поскольку большинство приложений Java имеют зависимости от сторонних JAR-файлов,также похож на Ivy в том, что он управляет получением зависимостей JAR из центрального места, как ваших JAR-файлов, так и любых JAR-файлов, от которых они зависят.

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

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

1 голос
/ 09 марта 2011

Добавление к ответу @Jigar Jishi:

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

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

Если это абсолютно важно для вашего проекта,скажи, дай ему шанс, но не делай этого наполовину.Скорее всего, потребуется много времени и усилий, чтобы все исправить.Но если вам это удастся, вы, вероятно, будете счастливы в конце .. :)

0 голосов
/ 09 марта 2011

Я бы рекомендовал взглянуть на веб-сайт Sonatype ( здесь ).

Эта компания очень вовлечена в мир Maven;)

0 голосов
/ 09 марта 2011

Maven - это инструмент для сборки (инструмент, который упростит упаковку вашего приложения в какую-то сборку, например (.jar, .war, .ear).

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

...