Java support - herokaijp/devcenter GitHub Wiki
HerokuのCedarスタックはさまざまなタイプのJavaアプリケーションを動かす事が出来ます。
このドキュメントは、Javaアプリケーションの認識と実行に関係するHerokuのCedarスタックの一般的な振る舞いについて説明をします。一般的なHerokuのJavaのサポートはPlayを除く全てのフレームワークについて言及をしています。PlayフレームワークのサポートについてはPlayフレームワークサポートリファレンスの中で読む事が出来ます。
フレームワークのための詳しいチュートリアルのためには、以下を訪れるといいでしょう :
また java.heroku.comには、あなたのHerokuのアカウントへ直接クローンできるテンプレートとなるアプリケーションがあります。
アクティベーション
Heroku上のJavaアプリケーション向けのデフォルトのビルドシステムはMavenです。Maven向けのHerokuのJavaのサポートはpom.xmlを含むアプリケーションに適応されるでしょう。
デプロイされたアプリケーションがJavaのアプリケーションだと認識された際に、Herokuは-----> Java app detectedと返答します。
:::term
$ git push heroku master
-----> Java app detected
ビルド時の振る舞い
あなたのアプリケーションをビルドするために以下のコマンドが実行されます :
:::term
$ mvn -B -DskipTests=true clean install
ローカルのレポジトリはパフォーマンスの向上のためにビルドの中でキャッシュされます。
環境
以下の環境変数は始めのPushのタイミングで設定されます :
PATH: /usr/local/bin:/usr/bin:/binJAVA_OPTS: -Xmx384m -Xss512k -XX:+UseCompressedOopsMAVEN_OPTS: -Xmx384m -Xss512k -XX:+UseCompressedOopsPORT: WebプロセスがバインドされるHTTPポートDATABASE_URL: データベース接続用URL
実行時の振る舞い
Herokuは現在アプリケーションを走らせるためにOpenJDKを使用しています。OpenJDKのバージョンは、system.propertiesファイルを使って、バージョン6と7を使う事が出来ます。ラムダ関数のあるOpenJDKの8もプレビューとして利用可能です。更なる情報のためにJava Tutorialsを確認してください。
Javaアプリケーションは、デフォルトで一つもWebプロセスタイプが定義されません。Procfileを設定するための情報を得るためにJavaチュートリアル集の中から1つ確認してみてください。
あなたのアプリケーションが使うJDKはSlugの中に含まれ、このことはSlugのサイズに影響します。
アドオン
PostgresデータベースはJavaアプリケーション向けにも自動的に準備されます。これにより、DATABASE_URL環境変数が追加されます。