Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Развертываем приложение на Heroku c поддержкой Gradle

Anna | 1.06.2014 | нет комментариев
В продолжение предыдущей статьи про развертывание Ratpack приложения на Heroku, сегодня я расскажу про применения плагина Gradle. Это был сложный навык по развертыванию простого Ratpack приложения на Heroku PaaS. Мы рылись в хитросплетениях buildpack’s для развертывания на Heroku.Отличные новости в том, что это бельше не непременно.
В этой статье я покажу больше примитивный метод развертывания. В этом способе не необходимости очевидно применять Heroku Toolbelt и custom’ые buildpack’s. Так же огромнее не необходимо иметь Ruby, RVM, либо уйма других связанных с Ruby спецтехнологий, которые не необходимы Java/Groovy разработчикам, им даже знать об данный нет необходимости.

Все это вследствие великолепному Java API, которое Heroku сделало доступным для использованя для нас. Это простая Java библиотека, которая разрешает нам взаимодействовать напрямую с Heroku. Добавлена вероятность работы с Git репозиториями, через библиотеку JGit, предоставленную Eclipse Foundation, и у нас есть все, что нам необходимо для развертывания нашего приложения из директории с нашим планом. Преобладание в том, что все это обернуто в Gradle плагин, тот, что управляет каждому от вашего имени.
По факту все, что нам необходимо это установленный JDK, с переменными окружения в PATH, установленный Gradle и отличный текстовый редактор. Ну что ж, приступим:

Конфигурация

Раньше каждого, нам необходимо сконфигурировать файл нашего плана build.gradle дальнейшим образом:

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
}

Это настройка нашего build’а для применения heroku плагина. Обратите внимание на блок кода heroku, там описана конфигурация плагина. Исключительное непременное поле тут это apiKey. Поле appName не является непременным для первого запуска, но должно быть указано для последующих запусков. Если это поле не указать, то Heroku сгенерирует наименование приложения от вашего имени и будет объединять ваш локальный git репозиторий c экзепляром приложения на Heroku. Если вам не нравятся сгенерированные имена, вы можете назвать ваше приложение очевидно при первом запуске.
Стоит также подметить, что apiKey может быть извлечен из файла свойств для решения задач с безопасностью.
Дальше нам необходимо добавить Procfile в корневую папку нашего плана. Это небольшой файл ответственный за исходную загрузку приложения, когда оно будет развернуто. Значительной чертой тут является то, что команды начинаются с web:. Это будет зависеть от того, какое приложение вы пытаетесь развернуть.

Fat Jar apps (Spring Boot and DropWizard)

Создаем Procfile в корневой папке нашего плана, добавляем следующее содержимое:

---
default_process_types:
  web: java -jar -Dport=$PORT build/libs/my-springboot-fat.jar

Запуск этой команды для Spring Boot либо Dropwizard приложения, применяя fat.jar, доволен, Дабы запустить приложени.

Ratpack

Развертывание Ratpack приложения примерно такое же примитивное, но требует немножко больше тонкой настройки. Во-первых, вам необходимы root права на корневую директорию плана, которую Gradle использует для именования в скрипте запуска. Это дозволено сделать добавив файл settings.gradle в корневую папку вашего плана.

Содержимое файла settings.gradle:

rootProject.name = 'ratpack'

Дальше мы добавляем наш Procfile:

---
default_process_types:
  web: export RATPACK_OPTS="-Dratpack.port=$PORT" && build/install/ratpack/bin/ratpack build/install/ratpack/ratpack.groovy
Buildpacks

Если вы не указывали buildpack в блоке кода heroku в вашем файле build.gradle, то плагин предпочтет default buildpack. Данный buildpack будет применяться gradle wrapper’ом в вашем плане, для подготовки вашего приложения к развертыванию. Он делает самый минимум, легко исполняет команду gradlew в каталоге плана. Так же он требует, Дабы defaultTasks устанавливались в пределах вашего build файла.

Default Tasks

Для того, Дабы default buildpack знал, какие задачи запускать, мы обязаны указать список задач в файлеbuild.gradle. Скажем, Дабы подготовить Ratpack приложение для развертования, вы обязаны добавить следующие задачи:

defaultTasks "clean", "build", "installApp"
Принять JDK!

Default buildpack разрешает нам даже выбирать какую JDK применять в runtime. Легко разместите файлsystem.properties в базовую папку плана со дальнейшим оглавлением:

java.runtime.version=1.7

Если файл system.properties не присутствует в вашем плане, то 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.
...

Сейчас мы знаем, что можем приступить к развертыванию. Начнем с того, что добавим wrapper в наш git:

$ ./gradlew wrapper
$ git add gradlew gradle
$ git commit -m 'Add wrapper.'

Дальше сделаем приложение на Heroku и развернем его:

$ ./gradlew herokuCreateApp
$ ./gradlew herokuDeployApp

Если все отлично, то сейчас у вас должно быть развернутое приложение на Heroku.
Исходники gradle плагина и default builpack вы можете обнаружить на GitHub’е.
На этом все!
Мы увидели как легко получить развернутое на Heroku приложение, использую Gradle план. Все что нам необходимо это apiKey и несколько дюже примитивных настроек, Дабы получить наше приложение, поющее приторно в облаках. Развертывание приложение на Heroku еше никогда не было таким простым! Оригинал статьи находится тут. Спасибо за внимание.

Источник: programmingmaster.ru

Оставить комментарий
БАЗА ЗНАНИЙ
СЛУЧАЙНАЯ СТАТЬЯ
СЛУЧАЙНЫЙ БЛОГ
СЛУЧАЙНЫЙ МОД
СЛУЧАЙНЫЙ СКИН
НОВЫЕ МОДЫ
НОВЫЕ СКИНЫ
НАКОПЛЕННЫЙ ОПЫТ
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB