やっぱり悔しいので、再チャレンジしていく
sbtを利用してPlayframeworkプロジェクト作成
sbt new playframework/play-scala-seed.g8
これで、作成。sbt run
して問題ないことみとくといい
変更していく
やったことを箇条書きしとく
- build.gradle
def playVersion = "2.7.0"
->def playVersion = "2.6.0"
- system.properties (なければ作成)
java.runtime.version=1.8
を追加
- ルートディレクトリに
Procfile
を作成web: target/universal/stage/bin/{プロジェクト名} -Dhttp.port=${PORT} -Dplay.crypto.secret=${APPLICATION_SECRET}
- プロジェクト名は任意で変更すること
- conf/application.confに追加
play.filters.hosts { # 有効なホスト名を設定(デフォルト値:localhost, .local) allowed = [.] }
- sbt playGenerateSecret でランダムにキー生成する
- heroku config:add APPLICATION_SECRET="{上記で生成したキー}"
- ランダムキーに`が含まれてるとうまくいかないことがある(コマンドと思われるっぽい)ので、その場合はもう一度キーを作成したほうが早いかも
heroku buildpacks:set heroku/scala
でbuildpackの追加
大まかにはこんな感じ
課題?
- JDK11以上を使いたい場合。多分Packegeへのアクセス権周りを解決しないとだめ。(JDK9のあれ)
- PlayFrameworkを2.7で作ったあと2.6にしているが問題ないのか
- たぶん、2.7の機能とかは使えないはず。Gradle側の解決を待たないとだめかな。そのうち使えそうになる気がする
とりあえず、当面はJava1.8+Play2.6で作って行く予定。ある程度形になったところでgithubに移したいかな