Итак, вам понадобилось развернуть приложение на сервере приложений Tomcat в конце сборки мавеном. Для этого есть плагин tomcat7-maven-plugin, я использовал его для Tomcat 8, бегающего на java 8. Подробности далее.
Для развертывания нужно выполнить несколько действий руками:
1. В Tomcat8 прописываем пользователя admin/password с ролями «manager-gui,manager-script» в файле tomcat-users.xml (это минимальный набор для поставленной задачи, вы можете добавлять другие роли):
<user username="admin" password="password" roles="manager-gui,manager-script"></user> |
2. Добавляем в мавен файл settings.xml по пути C:\Users\%username%\.m2 (для Windows):
<settings> <servers> <server> <id>TomcatServer</id> <username>admin</username> <password>password</password> </server> </servers> </settings> |
3. В Windows возможна ошибка (видна в вебморде по адресу http://localhost:8080/manager/html), связанная с тем, что Томкат не может вычистить файлы распакованного WAR.
FAIL - Unable to delete [C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\app]. The continued presence of this file may cause problems. |
Лечится редактированием файла conf/context.xml — добавить antiResourceLocking=»true»:
<context antiResourceLocking="true"> ... </context> |
4. Вставка в pom.xml:
<build> <plugins> <plugin> <groupid>org.apache.tomcat.maven</groupid> <artifactid>tomcat7-maven-plugin</artifactid> <version>${tomcat.plugin.version}</version> <configuration> <url>http://localhost:8080/manager/text</url> <server>TomcatServer</server> <username>admin</username> <password>password</password> <path>/client</path> <update>true</update> </configuration> </plugin> </plugins> </build> |
Обратите внимание на ссылку в настройках: http://localhost:8080/manager/text, а не http://localhost:8080/manager/html.
5. Рестартим Томкат, если нужно подхватить изменения в конфигах. Ожидается, что он поднимается на порте 8080.
6. Выполняем для проекта сборку мавеном по команде: mvn clean package tomcat7:redeploy . Обратите внимание- в цели указан tomcat7.
7. Открываем ссылку http://localhost:8080/client
8. PROFIT 🙂