В продолжение предыдущая статья Что касается развертывания приложения Ratpack на Heroku, сегодня я расскажу об использовании плагина Gradle. Это был трудный опыт развертывания простого приложения Ratpack на Heroku PaaS. Мы углубились в тонкости сборки пакета для развертывания на Heroku. Хорошая новость в том, что в этом больше нет необходимости.
В этой статье я покажу вам более простой метод развертывания.
В этом методе нет необходимости явно использовать Пояс для инструментов Героку и обычай сборочный пакет .
Также нет необходимости иметь Ruby, RVM или множество других связанных с Ruby технологий, которые не нужны разработчикам Java/Groovy; им даже не обязательно об этом знать.
И все это благодаря превосходному Java API, который Heroku предоставил нам для использования.
Это простая библиотека Java, которая позволяет нам напрямую взаимодействовать с Heroku. Добавлена возможность работы с репозиториями Git через библиотеку.
JGit , предоставленный Eclipse Foundation, и у нас есть все необходимое для развертывания нашего приложения из каталога нашего проекта.
Преимущество в том, что все это заключено в плагине Gradle, который управляет всем от вашего имени.
Фактически, все, что нам нужно, — это установленный JDK с переменными среды в PATH, установленный Gradle и хороший текстовый редактор.
Что ж, начнем:
Конфигурация
Прежде всего, нам нужно настроить файл нашего проекта.build.gradle следующим образом:
Это настройка нашей сборки для использования плагина Heroku. Обратите внимание на блок кода Heroku, там описана конфигурация плагина.buildscript { repositories { .
mavenCentral() maven { url ' http://dl.bintray.com/vermeulen-mp/gradle-plugins ' } } dependencies { classpath "org.gradle.api. plugins:gradle-heroku:0.9.6 " } } apply plugin: 'heroku' .
heroku { //get this from heroku apiKey = 'my-api-key' //set this on first run if you don't want a generated name //appName = 'some-unique-app-name' //set this if you are not happy with the default gradlew buildpack //buildpack = ' http://somebuildpack }
Единственное обязательное поле здесь — apiKey. Поле appName является необязательным для первого запуска, но его необходимо указать для последующих запусков.
Если вы не укажете это поле, Heroku сгенерирует имя приложения от вашего имени и свяжет ваш локальный репозиторий git с экземпляром приложения на Heroku. Если вам не нравятся сгенерированные имена, вы можете явно назвать свое приложение при первом запуске.
Также стоит отметить, что APIKey можно извлечь из файла свойств для решения проблем безопасности.
Далее нам нужно добавить Прокфайл в корневую папку нашего проекта.
Это небольшой файл, отвечающий за первоначальную загрузку приложения при его развертывании.
Существенной особенностью здесь является то, что команды начинаются с сеть: .
Это будет зависеть от того, какое приложение вы пытаетесь развернуть.
Приложения Fat Jar (Spring Boot и DropWizard)
Мы создаем Прокфайл в корневую папку нашего проекта добавьте следующий контент: ---
default_process_types:
web: java -jar -Dport=$PORT build/libs/my-springboot-fat.jar
Запуск этой команды для приложения Spring Boot или Dropwizard с использованием жир.
банка
, достаточно для запуска приложений.
Крысиная стая
Развернуть приложение Ratpack почти так же просто, но требует немного более тонкой настройки.Во-первых, вам необходимы права root для корневого каталога проекта, который Gradle использует для именования в сценарии запуска.
Это можно сделать, добавив файл настройки.
gradle в корневую папку вашего проекта.
Содержимое файла настройки.
gradle : rootProject.name = 'ratpack'
Далее мы добавляем наш Прокфайл : ---
default_process_types:
web: export RATPACK_OPTS="-Dratpack.port=$PORT" && build/install/ratpack/bin/ratpack build/install/ratpack/ratpack.groovy
Сборочные пакеты
Если вы не указали buildpack в блоке кода Heroku в своем файле build.gradle , то плагин выберет пакет сборки по умолчанию .Этот пакет сборки будет использоваться оболочкой Gradle в вашем проекте для подготовки приложения к развертыванию.
Он делает минимум: просто запускает команду gradlew в каталоге проекта.
Также требуется, чтобы в вашем файле сборки были установлены defaultTasks.
Задачи по умолчанию
Чтобы билдпак по умолчанию знал, какие задачи запускать, мы должны указать список задач в файле build.gradle .
Например, чтобы подготовить приложение Ratpack к развертыванию, вы должны добавить следующие задачи: defaultTasks "clean", "build", "installApp"
Примите JDK!
Пакет сборки по умолчанию даже позволяет нам выбирать, какой JDK использовать во время выполнения.
Просто поместите файл свойства системы в папку базового проекта со следующим содержимым: java.runtime.version=1.7
Если файл свойства системы отсутствует в вашем проекте, то buildpack предполагает наличие JDK 1.8 от вашего имени.
Начни запускать!
Пока все для настройки готово, теперь давайте запустим наше приложение.
Откройте терминал и введите следующие команды: $ gradle tasks
.
herokuAppCreate - Creates a new application on Heroku. herokuAppDeploy - Deploy the application to Heroku. herokuAppDestroy - Destroy the application on Heroku. herokuAppInfo - Displays comprehensive information about the named application. herokuAppList - Lists all Apps available for the current user on Heroku. herokuBuildpack - Downloads and explodes the specified buildpack to this project. .
Теперь мы знаем, что можем начать развертывание.
Начнем с добавления оболочки в наш git: $ .
/gradlew wrapper
$ git add gradlew gradle
$ git commit -m 'Add wrapper.'
Далее создадим приложение на Heroku и развернем его: $ .
/gradlew herokuCreateApp $ .
/gradlew herokuDeployApp
Если все в порядке, теперь ваше приложение должно быть развернуто в Heroku.
Источники плагин Gradle И пакет сборки по умолчанию вы можете найти его на GitHub.
Вот и все!
Мы увидели, насколько легко развернуть приложение на Heroku с помощью проекта Gradle. Все, что нам нужно, это apiKey и несколько очень простых настроек, чтобы наше приложение прекрасно работало в облаках.
Развертывание приложения на Heroku еще никогда не было таким простым! Оригинал статьи находится Здесь .
Спасибо за внимание.
Теги: #heroku #ratpack #gradle #translation #java #Groovy & Grails #gradle
-
Академия
19 Oct, 24 -
Harumambu.ru — Все Фриланс-Проекты Рунета
19 Oct, 24 -
Первый День Macworld Expo 2007
19 Oct, 24