LoginSignup
31
28

More than 3 years have passed since last update.

herokuでspring-bootをgradleを使ってデプロイするときのコツ

Last updated at Posted at 2015-05-09

herokuとspring-boot

herokuにspring-bootをデプロイするときのProcfileの指定の仕方がいろいろあるようだが、しっくり来るのがあったのでメモ。
また、mavenではなくgradleを使ってデプロイする。

gradleの準備

gradleは、gvmというパッケージ管理を使って、インストールする。
詳細は、こちら。

MacでGradleのインストールについて+GVMのコマンドなど使い方まとめ

build.gradleファイルの準備

プロジェクト直下に(mavenでいうところのpom.xmlと同じ場所)build.gradleファイルを配置

build.gradle
buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.3.RELEASE")
  }
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'spring-boot'

jar {
  baseName = 'spring-boot-sample'
  version =  '0.1.0'
}

repositories {
  mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
  // tag::jetty[]
  compile("org.springframework.boot:spring-boot-starter-web") {
    exclude module: "spring-boot-starter-tomcat"
  }
  compile("org.springframework.boot:spring-boot-starter-jetty")
  // end::jetty[]
  // tag::actuator[]
  compile("org.springframework.boot:spring-boot-starter-actuator")
  // end::actuator[]
  testCompile("junit:junit")
}

defaultTasks "clean", "build"

task wrapper(type: Wrapper) {
  gradleVersion = '2.4'
}

gradle wrapperでgradlewファイルを生成

この手順がわからずgradle使えないと思ってしまっていた。

gradle wrapper
  • プロジェクト直下にgradlewファイルが生成される。(gradlew.batはWindowds用らしい)
  • プロジェクト配下にgradleディレクトリが生成され、中にgradle-wrapper.jarが生成される。

image

gradlewから起動してみる

./gradlew build && java -jar build/libs/spring-boot-sample-0.1.0.jar

※ここで起動できないとあとに進まない

ここから先は、以下のページを参考にした。

GradleでビルドしたSpring BootアプリをHerokuで動かす

Procfileを修正

Procfile
web: java -jar build/libs/spring-boot-sample-0.1.0.jar --server.port=$PORT

foremanで起動してみる

foreman start web

※起動できるはず。起動できない場合は、ちゃんとjarファイルがあるか確認する。jarファイルの名前が間違っていないか?jarファイルがない場合は、gradlew buildを実行してみる。

.gitignoreに余計なファイルがコミットされないように設定を加える

.idea
/build/
/.gradle/
spring-boot-sample.iml

gradleディレクトリは、必要だが、.gradleは不要。buildも不要。

herokuのカスタムbulidpackの設定

heroku-buildpack-gradlew

READMEを見てみるとちょっと手順が違うようだが、動くので問題ないと思っています。

heroku config:set BUILDPACK_URL=https://github.com/marcoVermeulen/heroku-buildpack-gradlew.git

gitにコミットして、herokuにpush

git push heroku master

herokuのログを確認。エラーがないこと。

heroku logs

起動を確認する

heroku open

動かくはず。

31
28
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
28