この記事では、より簡単な展開方法を示します。 このメソッドは、 Heroku Toolbeltとカスタムビルド パックを明示的に使用する必要はありません。 また、JavaやGroovyの開発者が必要としないRuby、RVM、またはその他の多くのRuby関連テクノロジーも必要なくなり、これについても知る必要がなくなります。
これはすべて、Herokuが使用できる優れたJava APIのおかげです。 これは、Herokuと直接やり取りできるシンプルなJavaライブラリです。 Eclipse Foundationが提供するJGitライブラリを介してGitリポジトリを操作する機能を追加しました。プロジェクトのディレクトリからアプリケーションをデプロイするために必要なものはすべて揃っています。 利点は、これらすべてが、すべてを管理するGradleプラグインでラップされていることです。
実際、必要なのは、PATHの環境変数を備えたインストール済みのJDK、インストール済みの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 }
これは、herokuプラグインを使用するためのビルドのセットアップです。 herokuコードブロックに注意してください。プラグインの構成はそこに記述されています。 ここで必要なフィールドはapiKeyのみです。 appNameフィールドは最初の起動には必要ありませんが、以降の起動には指定する必要があります。 このフィールドが指定されていない場合、Herokuはユーザーに代わってアプリケーション名を生成し、ローカルgitリポジトリをHerokuのアプリケーションインスタンスにリンクします。 生成された名前が気に入らない場合は、アプリケーションを初めて起動するときにアプリケーションに明示的に名前を付けることができます。
また、セキュリティ上の問題を解決するために、プロパティファイルからapiKeyを抽出できることにも注意してください 。
次に、 Procfileをプロジェクトのルートフォルダーに追加する必要があります。 これは、アプリケーションがデプロイされたときに、アプリケーションの初期ロードを行う小さなファイルです。 ここでの重要な機能は、コマンドがweb:で始まることです。 これは、デプロイしようとしているアプリケーションによって異なります。
Fat Jarアプリ(Spring BootおよびDropWizard)
プロジェクトのルートフォルダーにProcfileを作成し、次の内容を追加します。
--- default_process_types: web: java -jar -Dport=$PORT build/libs/my-springboot-fat.jar
fat.jarを使用してSpring BootまたはDropwizardアプリケーションに対してこのコマンドを実行するだけで、アプリケーションを起動できます。
ラットパック
Ratpackの展開はほぼ同じくらい簡単ですが、少し調整が必要です。 最初に、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
ビルドパック
build.gradleファイルのherokuコードブロックでbuildpackを指定しなかった場合、プラグインはデフォルトのbuildpackを選択します 。 このビルドパックは、プロジェクトのgradleラッパーがアプリケーションをデプロイする準備をするために使用します。 プロジェクトディレクトリでgradlewコマンドを実行するだけです。 また、ビルドファイル内にdefaultTasksをインストールする必要があります。
デフォルトのタスク
デフォルトのビルドパックが実行するタスクを認識するために、 build.gradleファイルでタスクのリストを指定する必要があります。 たとえば、Ratpackアプリケーションを展開用に準備するには、次のタスクを追加する必要があります。
defaultTasks "clean", "build", "installApp"
JDKを受け入れます!
デフォルトのビルドパックでは、ランタイムで使用するJDKを選択することもできます。 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. ...
これで、展開を開始できることがわかりました。 ラッパーをgitに追加することから始めましょう。
$ ./gradlew wrapper $ git add gradlew gradle $ git commit -m 'Add wrapper.'
次に、Herokuでアプリケーションを作成してデプロイします。
$ ./gradlew herokuCreateApp $ ./gradlew herokuDeployApp
すべてが順調であれば、Herokuにデプロイされたアプリケーションがあるはずです。
GitHubでgradle プラグインとデフォルトのbuilpackのソースコードを見つけることができます。
それだけです!
Gradleプロジェクトを使用してHerokuにアプリケーションをデプロイするのがどれほど簡単かを見ました。 必要なものは、apiKeyと、クラウドでアプリケーションを甘美に歌うための非常に簡単な設定だけです。 Herokuでのアプリケーションのデプロイがかつてないほど容易になりました! 元の記事はこちらです。 ご清聴ありがとうございました。