Работа с Maven + Tomcat


Maven и Tomcat


Ни для кого не секрет, что maven-ом можно деплоить проекты в Apache Tomcat.
Правда многие разработчики все-таки используют функции, встроенные в среду разработки (в Netbeans – из коробки, в Eclipse – ставим плагин).
Это удобно и просто, но к сожалению, мне приходится часто “перескакивать” с разных IDE и поэтому в некоторых своих проектах я предпочитаю сразу настроить tomcat:deploy.

На данный момент использую “tomcat-maven-plugin“.

Запуск осуществляется командой: mvn tomcat:deploy.

Для удобство можно указать в IDE, чтобы эта команда выполнялась на действие “Run” или повесить на нее какой-нибудь HotKey.

Сборку финальной версии и развертывание приложения на “боевом” сервере, я, как правило, осуществляю вручную, т.к. далеко не всегда на реальных работающих серверах из внешнего мира доступен интерфейс для переразвертывания веб-приложений.

В случае, если мы работаем в простых условиях, когда у нас имеется свой apache tomcat-ом установленный на локальном компьютере, то настройка довольно простая.
Нам нужно три файла.

  1. tomcat-users.xml
  2. settings.xml
  3. 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).

,