Как выполнить горячее развертывание источников с помощью 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 легко настраивается, поэтому вы можете адаптировать его к своим потребностям.

Дженкинс URL

Другие вопросы по тегам