備忘録
build.gradle
jvmのバージョンは明記
build.gradle
sourceCompatibility = 1.8
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
最後にこれを追加した
build.gradle
task stage(type: Copy, dependsOn: [clean, build]) {
from jar.archivePath
into project.rootDir
rename {
'app.jar'
}
}
stage.mustRunAfter(clean)
clean << {
project.file('app.jar').delete()
}
heroku
herokuに登録後
コマンドラインでherokuにログインしたあと以下を実行(プロジェクト内で)
$ heroku login
$ heroku config:set GRADLE_TASK="build"
herokuのポートに合わせるためにソースコードに以下を記述
main.kt
fun getHerokuAssignedPort(): Int {
val processBuilder = ProcessBuilder()
return if (processBuilder.environment()["PORT"] != null) {
Integer.parseInt(processBuilder.environment()["PORT"])
} else 4567
//return default port if heroku-port isn't set (i.e. on localhost)
}
ビルド
./gradlew build
でビルドした後jarファイルがbuild/libsの中にあることを確認
デプロイ
Procfileに以下を記述
Procfile
web: java $JAVA_OPTS -jar build/libs/{ファイル名}.jar -Dserver.port=$PORT
herokuにデプロイ
エラーは覚悟で・・・
git add ./
git commit -m "first app"
git push heroku master"
herokuのマイページからlogを確認
crashed
とか書いてなかったらいけてるはず
- これで無理だった場合
mv build/libs/*.jar ./
でプロジェクトのホームディレクトリに移動して
Procfile
web: java $JAVA_OPTS -jar {ファイル名}.jar -Dserver.port=$PORT
に変更する
これで無理ならひたすらエラーをコピって検索に尽きる・・・
おまけ
$ heroku local
でローカル実行
まとめ
確実に実行できるjarファイルを用意してからherokuにdeploy!!そしてenjoy!!