Статьи

Сделайте Tomcat частью вашего процесса сборки Maven


Мой последний блог объяснял отношения между жизненными циклами Mavan, фазами сборки и целями с высоты около 3 миль.
При объяснении целей Maven я упомянул кота: перераспределить цель без реального определения, откуда она взялась. Ответ таков: цель tomcat: redeploy не является целью по умолчанию или частью установки Maven по умолчанию, а является частью подключаемого модуля tomcat-maven-plugin.
Этот плагин поставляется с несколькими полезными целями, которые позволяют вам манипулировать Tomcat как часть вашего процесса сборки — большая идея здесь заключается в том, что Tomcat может автоматически стать частью вашего расширенного процесса сборки, процесса, который будет выглядеть примерно так:

  1. скомпилировать исходный код
  2. выполнить юнит-тесты
  3. построить файл WAR
  4. автоматически развернуть файл WAR
  5. запустить интеграционные тесты

… позволяя вам как модульное, так и интеграционное тестирование кода автоматически.

В этом блоге рассказывается об использовании 1-й версии tomcat-maven-plugin, подробности о которой доступны в
codehause . С тех пор как я начал использовать этот плагин некоторое время назад, проект перешел под
зонтик Apache проекта Tomcat , где версия 2 в настоящее время находится в стадии разработки и в настоящее время доступна в виде бета-версии.

Настройка плагина Maven Tomcat состоит из трех этапов.

  1. Настройте учетную запись менеджера Tomcat.
  2. Добавьте учетные данные менеджера в ваш файл settings.xml
  3. Добавьте плагин Maven Tomcat в свой файл POM.

Настройка учетной записи Tomcat Manager

Настройка учетной записи Tomcat Manager является обязательным условием при использовании плагина Tomcat Maven. Об этом написано огромное количество статей в Интернете, поэтому я не буду вдаваться в подробности, за исключением того, что конфигурация зависит от версии Tomcat. В Tomcat 7 вам нужно обновить файл tomcat_users.xml вашей конфигурации Tomcat, добавив что-то вроде этого:
1

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users>
 <role rolename="manager-gui"/>
 <role rolename="manager-script"/>
    <user username="admin" password="password" roles="manager-gui, manager-script"/>
</tomcat-users>

Предполагая, что вы работаете локально с настройками безопасности по умолчанию, вы можете проверить это, набрав в браузере: http: // localhost: 8080 / manager. После этого вам будет предложено диалоговое окно с запросом безопасности по умолчанию, и вы сможете войти с новыми учетными данными …

… и увидеть страницу менеджера вашего сервера.

Добавьте учетные данные менеджера в ваш файл settings.xml

Следующим шагом будет сообщить Maven имя пользователя и пароль вашего менеджера Tomcat. Для этого вам нужно добавить что-то вроде этого:

    <server>
      <id>myserver</id>
      <username>admin</username>
      <password>password</password>
    </server>

… в раздел <серверы> вашего файла Maven settings.xml. Очевидно, что имя пользователя и пароль должны совпадать с теми, что указаны в вашем файле tomcat-users.xml. Обратите внимание на тег id, вы увидите это снова в следующем разделе.

Добавьте плагин Maven Tomcat в свой файл POM

Этот последний шаг доходит до сути дела. Плагин Maven Tomcat настраивается путем добавления следующего XML в раздел <plugins> файла POM вашего проекта:

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <version>1.1</version>
        <configuration>
            <server>myserver</server>
            <url>http://localhost:8080/manager/text</url> 
        </configuration>
    </plugin>

This is really straight forward; however, there are a couple of points to note. Firstly, in the <configuration> section, you’ll see the server id of myserver. This must match the server id that you added to your settings.xml file in the previous section. Secondly, the server’s url setting seems, for no given reason, to have to end with «/manager/text», for example: «http://localhost:8080/manager/text». I guess that this is explained somewhere, but I can’t find it — all I know is that it just works.

You can now start your server and run a Maven build using the «mvn install tomcat:deploy» command. Once installed, switch to the «tomcat:redeploy» goal.


1 Основное отличие Tomcat 7 от предыдущих версий заключается в том, что в Tomcat 7 роль менеджера была разделена на несколько отдельных под ролей. Поэтому в Tomcat 7 вам нужно указать роли, такие как manager-gui и т. Д., Тогда как в предыдущих версиях роль менеджера была бы достаточной.

 

 

С http://www.captaindebug.com/2012/03/configuring-maven-tomcat-plugin.html