Подтвердить что ты не робот

Как использовать Maven в моем проекте Java и почему?

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

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

Итак,

  • Где появляется Maven? Я использовал Ant, и я понимаю, что Муравьи используют стандартизованный процесс сборки. Но зачем нам продвинутый Ant в форме Maven?

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

Спасибо

4b9b3361

Ответ 1

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

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

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


Забыл упомянуть, что есть плагин 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" ), или вы можете настроить свои собственные дополнительные репозитории (например, для ваших собственных проектов или если вы не подключены к Интернету).

Ответ 2

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

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

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

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

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

Ответ 3

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

Также я немного исследовал maven, и я сделал несколько небольших надписей, напоминающих напоминания. Если это стоит прочитать, то здесь:

/* mvn generate mvn install загружает все необходимые банки Тесты mvn test... Сайт mvn создает зависимости загрузки сайта

чтобы развернуть сайт, нам нужно объявить местоположение для распространения в вашем 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

тогда мы можем создать военный файл нашего проекта и выложить его в папке 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, images и т.д.)
                  См. Maven-war-plugin для получения более подробной информации.    site/- Содержит все файлы apt или xdoc, используемые для создания веб-сайта проекта.
           См. Maven-site-plugin для получения более подробной информации
   контрольная работа /        java/- Содержит весь код Java, используемый для тестирования.
               См. Maven-compiler-plugin для получения более подробной информации.        scala/- Содержит весь код scala, используемый для тестирования.
                Подробнее см. Maven- scala -plugin.        Ресурсы /- Содержит весь статический контент, который должен быть доступен на                     classpath во время тестирования. Подробнее см. В файле maven-resources-plugin

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

пример внедрения зависимостей приведен ниже:                  org.scala-языки            scala -library           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, вы можете пойти для этой команды

Ответ 4

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

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

Ответ 5

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

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

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

полезно.

Ответ 6

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

Ответ 7

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