最近、とあるPaasからHerokuへの移行をしているのですが、アプリケーションをデプロイする時にGitを使ったデプロイではなく、ちょっとした理由があってWARファイルを直接デプロイできないかなぁと思い、ちょっと調べてみました。
あ、もちろんJava前提の話ですよ。
結果、できました。日本語情報を見かけなかったので、メモっておきます。需要があるかどうかは謎ですが。
とりあえず、ローカルでGit操作を全く絡ませないという形で考えると…
まず、デプロイしたいアプリケーションのWARファイルを作成します。ここでは、Mavenなどを使って以下のディレクトリにWARファイルを作ったとしましょう。
target/my-sample-app.war
それから、アプリケーションをHerokuに作成します。
$ heroku apps:create my-sample-app
ここでは、アプリケーション名を「my-sample-app」としましょう。
続いて、heroku-deployコマンドラインプラグインをインストールします。
$ heroku plugins:install https://github.com/heroku/heroku-deploy
この手順は、最初だけ行います。
ここまでの手順には、順序性などありませんけどね。
最後に、以下のコマンドでデプロイします。
$ heroku deploy:war --war target/my-sample-app.war --app my-sample-app
実行すると、以下のような表示が出てきてデプロイが行われます。
Uploading target/my-sample-app.war...............done Deploying to my-sample-app........done Created release v6
これで完了です。次回以降は、少なくともプラグインのインストールは不要になります。
うまくいったかどうかは、ログをtailするなどで確認。
$ heroku logs --tail --app my-sample-app
以上です〜。
参考)
WAR Deployment
https://devcenter.heroku.com/articles/war-deployment
なぜか、xsbt-web-pluginのREADMEにも、この手順が載っていました
https://github.com/earldouglas/xsbt-web-plugin#heroku