Как стать автором
Обновить

Maven: ответы на вопросы

Время на прочтение 3 мин
Количество просмотров 5.4K

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

Вопрос звучал примерно так:Как создать spring mvc проект, и подключить требуемые библиотеки например hibernate, задеплоить его на tomcat, а потом работать с этим проектом в eclipse?
Что бы не отвечать сумбурно и на все сразу давайте разделим вопрос.
  1. Создание Maven проекта
  2. Подключение библиотек (зависимостей) в Maven
  3. Деплой(установка) проекта на сервер приложений.
  4. Взаимодействие Maven со средой разработки.

Небольшое введение.


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

1. Создание проекта.

Maven создает проекты при помощи Maven Archetype Plugin.Создать проект можно либо полностью нулевой, при помощи команды:
mvn archetype:create -DgroupId=com.oracle.java -DartifactId=MyProject
groupId — это идентификатор группы проектов (как правило название компании + продукт) например com.oracle.javafx
artifactId — непосредственный идентификатор проекта в группе
(Вообще, все проекты в Maven однозначно идентифицируются по трем составляющим Группа, идентификатор, версия.)

Либо можно создать проект указав архитип(шаблон/болванка) по которому он должен быть создан:
mvn archetype:generate -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-spring -DarchetypeVersion=2.0 -DgroupId=com.mysite.sample -DartifactId=mySpringMVCProject -DinteractiveMode=false
В этой команде плагину передается набор параметров определяющих как и по какому архитипу создать проект. Каждый параметр начинается с "-D" и заканчивается пробелом. (-D<имяПараметра>=<ЗначениеПараметра>)

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

2. Подключение библиотек (зависимостей) в Maven

Для подключения библиотеки к проекту на Maven необходимо что бы библиотека так же была проектом на Maven и лежала в репозитории про который «знает» Ваш Maven. Если у вас в наличии есть только jar файл, который хочется использовать как библиотеку, то и это вопрос решаемый.
  • Репозиторий и его настройки (должны быть у вас в MavenDir/conf/settings.xml).
  • groupId зависимости
  • artifactId зависимости
  • version (необходимая версия) зависимости
  • type (тип) зависимости

3. Деплой(установка) проекта на сервер приложений.

Деплоем в tomcat занимается tomcat-maven-plugin (Ваш КЭП).Для того что бы в фазе deploy проект обновлялся на tomcat необходимо найти в xml проекта ветку настроек project.build.plugins и добавить туда следующий код кусок xml.
<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <configuration>
                <!--здесь должны быть указаны настройки деплоя в tomcat -->
                <!-- Например:-->
                <warDirectory>path/to/my/warDir</warDirectory>
        </configuration>
</plugin>
Почитать о возможных настройках плагина и посмотреть примеры можно здесь.

4. Взаимодействие Maven со средой разработки.
Maven уже достаточно известен и многие среды разработки умеют просто открывать его проекты (например NetBeans). Но eclipse все равно требуется проект в своем формате. Получить эклипсовский можно так же при помощи плагина:
mvn eclipse:eclipse
P.S.
Топик не претендует на полноту изложения материала, является своеобразным экспериментом и специально помещен в «Персональные блоги», поэтому, если у вас все таки появилось острое желание поставить минус (не важно куда), потратьте пожалуйста пару минут на обоснование.
Спасибо.
Теги:
Хабы:
+2
Комментарии 4
Комментарии Комментарии 4

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн