Как использовать Maven в моем проекте Java и почему? - PullRequest
19 голосов
/ 18 июня 2010

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

Из того, к чему я привык в наших школьных проектах, было просто создать новый проект Java в Eclipse, написать свой код, создать .war (если это веб-интерфейс) и вставить код в папку webapps Tomcat.и запустить сервер!

Итак,

  1. Откуда появляется Maven?Я использовал Ant и понимаю, что Ants выигрывает от стандартизированного процесса сборки.Но зачем нам нужен расширенный Ant в форме Maven?

  2. В любом случае, мне нужно его использовать, так с чего мне начать - базовый процесс, несколько хороших уроков?

Спасибо

Ответы [ 7 ]

14 голосов
/ 18 июня 2010

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

Это также менеджер зависимостей , что означает, что когда вы понимаете, что серверная часть вашего проекта нуждается в apache commons-logging 1.0.4, но клиент конфликтует с чем-либо после 0.7.9, вы можете просто добавить пару строк в соответствующие файлы pom.xml, и Maven обрабатывает все это (загрузка, установка и отслеживание различных версий этих зависимостей).

Я не был сторонником своей текущей задачи, но после 2 лет использования ее для крупных корпоративных приложений я определенно уважаю то, что Maven приносит на стол. Есть много онлайн-ресурсов, но если вы собираетесь быть лидером в этом и действительно чувствуете себя некомфортно, я рекомендую приобрести книгу - O'Reilly полезен.


Забыл упомянуть, что есть плагин Eclipse, который делает его почти безболезненным для использования с Eclipse: m2Eclipse .


Второе обновление, например, pom.xml сегмент для ответа на вопрос OP:

Ваш pom.xml будет содержать код XML, такой как:

<dependencies>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.0.4</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

Они загружаются из центрального репозитория Maven (google "maven nexus") или вы можете настроить свои собственные дополнительные репозитории (например, для своих собственных проектов или если вы не подключены к Интернету).

5 голосов
/ 18 июня 2010

У меня было точно такое же восприятие, как и у вас, и в течение многих лет я избегал Maven.

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

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

Например, я недавно скачал проект с открытым исходным кодом, который зависел от 10 или 12 разных версий jar. После загрузки исходного кода и выполнения Maven все эти файлы jar (и многие другие) были загружены для меня.

Проблема с Maven (как мне сказал мой друг) заключается в том, что для выполнения программы «Hello world» сначала загружается мир, чтобы поприветствовать его. : P

4 голосов
/ 14 апреля 2011

для всех тех, кому интересно, где maven загружает jar-файлы зависимостей, проверьте папку с именем .m2 в корневом каталоге пользователя. например. для меня это c: \ documentsand settings \ myUserName.m2 \

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

/ * Mvn Generate mvn install скачивает все необходимые фляги mvn test тестирует приложение ... mvn site создает сайт для загрузки зависимостей

чтобы развернуть сайт, нам нужно объявить место для распространения в вашем pom.xml, аналогично хранилищу для развертывания. ... Веб-сайт УПП: //www.mycompany.com/www/docs/project/ ...

mvn site-deploy развертывает сайт

как построить структуру сайта: Файл site.xml используется для описания макета сайта и заменяет файл navigation.xml, используемый в Maven

Образец приведен ниже:

специалист http://maven.apache.org/images/apache-maven-project.png http://maven.apache.org/ http://maven.apache.org/images/maven-small.gif

<menu name="Maven 2.0">
  <item name="Introduction" href="index.html"/>
  <item name="Download" href="download.html"/>
  <item name="Release Notes" href="release-notes.html" />
  <item name="General Information" href="about.html"/>
  <item name="For Maven 1.x Users" href="maven1.html"/>
  <item name="Road Map" href="roadmap.html" />
</menu>

<menu ref="reports"/>

...

поэтому нам нужно связать наш html с этим форматом структуры, чтобы сделать макет сайта также для того, чтобы мы могли добавить любой новый CSS или что-то подобное, все, что нам нужно сделать, это поместить их в ресурсную часть папка src

тогда мы можем создать файл war нашего проекта и выложить его в папку httpd apache или в аналогичную папку нашего веб-сервера

В случае, если нам нужно сгенерировать проекты, нам нужно добавить несколько строк кода в наш файл pom.xml, и это: ... org.apache.maven.plugins Maven-проект-инфо-отчеты-плагин 2.0.1 ...

также, дескрипторы сайта должны быть установлены в site.xml

подробности можно увидеть в документации maven

maven структура с их важностью:

Проект / pom.xml - определяет проект SRC / главный/ Java / - Содержит весь код Java, который будет идти в ваш последний артефакт.
Смотрите maven-compiler-plugin для подробностей scala / - содержит весь код scala, который будет добавлен в ваш последний артефакт. //// пока не требуется для нашего текущего проекта Смотрите maven-scala-plugin для деталей resources / - содержит все статические файлы, которые должны быть доступны на пути к классам в последнем артефакте. Смотрите maven-resources-plugin для деталей webapp / - содержит весь контент для веб-приложения (jsps, css, изображения и т. д.)
Смотрите Maven-War-плагин для деталей site / - Содержит все файлы apt или xdoc, использованные для создания веб-сайта проекта.
См. Maven-site-plugin для деталей
тестовое задание/ Java / - Содержит весь код Java, используемый для тестирования.
Смотрите maven-compiler-plugin для подробностей scala / - содержит весь код scala, используемый для тестирования.
Смотрите maven-scala-plugin для деталей ресурсы / - Содержит весь статический контент, который должен быть доступен на путь к классу во время тестирования. См. Maven-resources-plugin для деталей

mvn validate это подтвердит, что все зависимости удовлетворены и ничего не пропущено mvn compile это скомпилирует проект mvn проверяет, является ли пакет действительным или нет также в проекте зависимости должны быть вставлены в XML-файл

пример внедрения зависимостей приведен ниже: org.scala-языки Scala библиотека 2.7.2-RC2 JUnit JUnit 3.8.1 тестовое задание

Каждая зависимость состоит из нескольких элементов:

* groupId - The group of the dependency to rely on
* artifactId - The artifact in the group to rely on
* version - The version of the dependency to rely on
* scope - The "scope" of the dependency. Defaults to compile (more details later)
* packaging - The packaging for the dependency.  Defaults to jar (e.g. jar, war, ear)

Вы можете интегрировать статические страницы, выполнив следующие действия:

* Put your static pages in the resources directory, ${basedir}/src/site/resources
* Create your site.xml and put it in ${basedir}/src/site
* Link to the static pages by modifying the menu section, create items and map them to the filenames of the static pages

mvn tomcat: развернуть для развертывания на tomcat или apache, вы можете перейти к этой команде

3 голосов
/ 18 июня 2010

Бесплатные книги о Maven можно загрузить с сайта Sonatype (откуда и появились первые разработчики Maven).

Также см. Документацию на веб-сайте Apache Maven .

1 голос
/ 18 июня 2010

Откуда появляется Maven? я использовали муравья, и я понимаю, муравьи преимущество стандартизированной сборки процесс. Но зачем нам продвинутый муравей в виде мавена?

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

В любом случае мне нужно его использовать, поэтому с чего начать - основной поток, несколько хороших уроков?

полезным.

0 голосов
/ 19 июня 2010

Если вы находитесь в организации, попробуйте создать прокси-сервер репозитория maven. Artifactory - хороший вариант.

0 голосов
/ 19 июня 2010

Последние NetBeans также имеют довольно хорошую интеграцию с Maven.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...