Как выполнить горячее развертывание источников с помощью gradle в tomcat7?
Кто-нибудь знает плагин Gradle "горячее развертывание" (или промежуточное программное обеспечение в виде сценария оболочки), который копирует файлы из исходной папки прямо в папку проекта в каталоге webapps tomcat (не встроенный сервер, такой как плагин gretty или gradle tomcat; версия 7, независимая от среды)?
В конце я хочу реализовать рабочий процесс Smart Dev для (повторного, отменного) развертывания веб-приложения Java во время создания кода. Я ищу что-то вроде заданий ворчливых часов.
Сценарий: веб-приложение Java с автономным исполняемым файлом JAR в папке WEB-INF/lib.
- регистрировать задачи наблюдателя сверху на задании Gradle
- источник Java изменен
- кот остановился
- удалить файл jar в папке WEB-INF/lib
- развернуть файл JAR
- скопировать jar в папку WEB-INF/lib (удалить все файлы журнала)
- начать кот
Перезапуск Tomcat не требуется, если статические источники изменены (например, JSP, JS и т. Д.).
Решение
Я думал о нашей практике работы в офисе. Я и мои коллеги программируем на машинах Windows и используем конфигурацию карты ключей в IDEA для запуска и остановки нашего локально установленного Tomcat.
Самым простым способом для меня является определение связанной с пользователем системной переменной среды CATALINA_HOME, которая ссылается на путь к серверу Tomcat.
CATALINA_HOME = C:\Program Files\apache-tomcat-7.0.56
Я определяю задачу развертывания, которая копирует скомпилированный файл war в папку webapps ((перезапускает Tomcat вручную через IEDA).
task deploy(type: Copy) {
def WEBAPPS_HOME = System.getenv()['CATALINA_HOME'] + '/webapps'
from 'build/libs/app.war' into WEBAPPS_HOME
dependsOn war
}
Никому не нужно изменять путь Tomcat внутри файла build.gradle, или нет никакого дополнительного файла user.config, который игнорируется git. Но мне не нравится ручная обработка Tomcat, и это необычно для работы с переменными окружения на Mac.
Итак, я решил поискать встроенный сервер Tomcat в качестве плагина Gradle для локальной разработки. Это рекомендовано от Бенджамина Мушко (Gradleware Engineer) в разделе Как использовать локальный tomcat?... и он описывает различия между плагином Cargo или Tomcat....
Настройка этого плагина довольно проста. Мне не нужно объяснять.
Нет необходимости устанавливать собственный Tomcat, и все работают с одним и тем же сервером версий.
Для нашей сложной сборки я использую мощь оболочки Gradle в качестве конфигурации задачи Jenkins. Я выполняю пакетную команду wintods.
cd "%WORKSPACE%\app"
gradlew.bat clean build
1 ответ
Я использую Jenkins для управления развертыванием наших приложений.
Есть ряд плагинов, которые помогают с такими задачами, а также имеют возможность писать свои собственные сценарии.
Jenkins легко настраивается, поэтому вы можете адаптировать его к своим потребностям.