Что делает Мейвен, теоретически и на практике? Когда стоит использовать его?

Я собираюсь начать Java-проект только для практики. Я читал о Maven, но я не понимаю, когда он предназначен для использования.

Можете ли вы дать мне несколько практических советов? Помогает ли Maven? Что делает Maven для моего проекта?

Ответы

Ответ 1

Что он делает

Maven - это "инструмент управления конструкцией", он предназначен для определения того, как ваши файлы .java скомпилированы в .class, упакованные в файлы .jar (или .war или .ear), (pre/post ) обрабатываются с помощью инструментов, управляя CLASSPATH, и все остальные виды задач, которые необходимы для создания вашего проекта. Он похож на Apache Ant или Gradle или Makefiles в C/С++, но он пытается быть полностью автономным в нем, что вам не нужны никакие дополнительные инструменты или скрипты путем включения других общих задач, таких как загрузка и установка необходимых библиотек и т.д.

Он также разработан вокруг темы "build portability", так что вы не получаете проблем с тем же кодом с тем же самым скриптом, который работает на одном компьютере, но не на другом (это известная проблема, мы имеем Виртуальных машинах Windows 98, так как мы не могли получить некоторые из наших приложений Delphi, компилирующиеся где-нибудь еще). Из-за этого, это также лучший способ работать над проектом между людьми, которые используют разные IDE, поскольку сценарии Ant, создаваемые IDE, трудно импортировать в другие IDE, но все IDE в настоящее время понимают и поддерживают Maven (IntelliJ, Eclipse и NetBeans). Даже если вам не нравится Maven, он становится точкой отсчета для всех других современных инструментов построения.

Почему вы должны использовать его

В Maven есть три вещи, которые очень приятны.

  • Maven (после того, как вы объявите, какие из них используете) загрузит все библиотеки, которые вы используете, и библиотеки, которые они используют для вас автоматически. Это очень приятно, и дело с множеством библиотек смехотворно легко. Это позволяет избежать "адский ад" . Он похож на Apache Ant Ivy.

  • Он использует "Конвенция по конфигурации ", чтобы по умолчанию вам не нужно было определять задачи, которые вы хотите выполнить. Вам не нужно писать "компиляцию", "тест", "пакет" или "чистый" шаг, как вам нужно делать в Ant или в Makefile. Просто поместите файлы в те места, где Maven ожидает их, и он должен работать с летучей мыши.

  • В Maven также есть много приятных плагинов, которые вы можете установить, которые будут обрабатывать многие обычные задачи из генерирования Java-классов из схемы XSD с использованием JAXB до измерение тестового покрытия с Cobertura. Просто добавьте их в свой pom.xml, и они будут интегрированы со всем остальным, что вы хотите сделать.

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

Как начать

Лучшее место для начала - Maven через 5 минут. Это позволит вам начать с проекта, готового для вас, с кодом со всеми необходимыми настройками файлов и папок (да, я рекомендую сначала использовать артефакт quickstart, по крайней мере, сначала).

После того, как вы начнете, вам нужно лучше понять, как инструмент предназначен для использования. Для этого "Better Builds with Maven - это самое подробное место, чтобы понять, как это работает, " Maven: The Complete Reference" является более актуальным. Прочтите первый для понимания, но затем используйте второй для справки.

Ответ 2

Из Соната типа doc:

Ответ на этот вопрос зависит от вашей собственной перспективы. Великий большинство пользователей Maven собираются называть Maven "инструментом сборки": инструмент используется для создания разворачиваемых артефактов из исходного кода. Строители и руководители проектов могут ссылаться на Maven как нечто большее всеобъемлющий: инструмент управления проектами. В чем разница? инструмент построения, такой как Ant, ориентирован исключительно на предварительную обработку, компиляции, упаковки, тестирования и распространения. Проект инструмент управления, такой как Maven, обеспечивает надмножество функций, инструмент построения. В дополнение к предоставлению возможностей сборки, Maven может также запускать отчеты, создавать веб-сайт и облегчать общение среди членов рабочей группы.

Я бы настоятельно рекомендовал посмотреть документ Sonatype и потратить некоторое время на просмотр доступных плагинов, чтобы понять силу Maven.

Вкратце, он работает на более высоком концептуальном уровне, чем (скажем) Ant. С помощью Ant вы должны указать набор файлов и ресурсов, которые вы хотите создать, а затем указать, как вы хотите, чтобы они были объединены вместе, и укажите порядок, который должен выполняться в (clean/compile/jar). С Maven это все неявно. Maven ожидает найти ваши файлы в определенных местах и ​​будет автоматически работать с этим. Следовательно, создание проекта с Maven может быть намного проще, но вы должны играть по правилам Maven!

Ответ 3

Maven - это инструмент построения. Наряду с Ant есть инструменты Java для построения.
Если вы новичок на Java, а просто создаете с помощью своей среды IDE, поскольку Maven имеет крутую кривую обучения.