Maven и Tomcat
Ни для кого не секрет, что maven-ом можно деплоить проекты в Apache Tomcat.
Правда многие разработчики все-таки используют функции, встроенные в среду разработки (в Netbeans – из коробки, в Eclipse – ставим плагин).
Это удобно и просто, но к сожалению, мне приходится часто “перескакивать” с разных IDE и поэтому в некоторых своих проектах я предпочитаю сразу настроить tomcat:deploy.
На данный момент использую “tomcat-maven-plugin“.
Запуск осуществляется командой: mvn tomcat:deploy.
Для удобство можно указать в IDE, чтобы эта команда выполнялась на действие “Run” или повесить на нее какой-нибудь HotKey.
Сборку финальной версии и развертывание приложения на “боевом” сервере, я, как правило, осуществляю вручную, т.к. далеко не всегда на реальных работающих серверах из внешнего мира доступен интерфейс для переразвертывания веб-приложений.
В случае, если мы работаем в простых условиях, когда у нас имеется свой apache tomcat-ом установленный на локальном компьютере, то настройка довольно простая.
Нам нужно три файла.
- tomcat-users.xml
- settings.xml
- pom.xml
tomcat-users.xml
Файл, как правило, находится рядом с другими файлами для настройки сервера: APACHE_TOMCAT_DIR/conf/tomcat-users.xml
В нем нужно проверить, что создана роль “manager” и существует пользователь с этой ролью.
Что-то вроде этого:
Таким образом, apache tomcat будет знать, что пользователю “user” можно развертывать у него war-ики.
settings.xml
Maven-овский файл с настройками. Есть глобальный файл на систему, есть под каждого пользователя.
Я меняю как правило свой, пользовательский, он находится здесь:
${user.home}/.m2/settings.xml
Если в Windows, то это будет файл “C:\Documents and Settings\имя_пользователя\.m2\settings.xml”
В нем нужно указать Maven-у с каким логином и паролем нужно обращаться на сервер, чтобы запустить приложение.
< ?xml version="1.0" encoding="UTF-8"?>
apache-tomcat-6.0.32
user
123456
pom.xml
Теперь в pom.xml указываем настройки для деплойщика: project/build/plugins/plugin tomcat-maven-plugin
...
...
...
org.codehaus.mojo
tomcat-maven-plugin
apache-tomcat-6.0.32
http://localhost:8080/manager
/mywebapp
...
...
...
Таким образом в pom.xml указывается только id сервера. Этот способ хорош тем, что вы не показываете в этом файле свой логин и пароль от личного tomcat-а. Это важно поскольку pom.xml часто бывает общественным файлом (т.к. хранят его в репозиториях вместе с исходниками).
Если резюмировать, то в целом все довольно просто. Нужно показать tomcat-у кому можно деплоить (tomcat-users.xml), показать maven-у к какому серверу и с каким логином и паролем стучаться (settings.xml) и настроить файл проекта, чтобы maven знал на какой конкретно сервер разворачивать (pom.xml).