Как использовать Maven в моем проекте Java и почему?
Я пытаюсь выяснить использование Maven, и у меня появилось много статей, описывающих его функции и использование. Но я просто не понимаю реального использования Maven с точки зрения производительности.
Из того, к чему я привык в наших школьных проектах, был просто создан новый Java-проект в Eclipse, напишите свой код, создайте .war(если есть на веб-сайте) и вставьте код в папку webapps Tomcat и запустите сервер!
Итак,
-
Где появляется Maven? Я использовал Ant, и я понимаю, что Муравьи используют стандартизованный процесс сборки. Но зачем нам продвинутый Ant в форме Maven?
-
В любом случае, мне нужно использовать его, поэтому с чего начать: базовый поток, хорошие обучающие программы?
Спасибо
Ответы
Ответ 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 - хороший вариант.