※注意※ 2015-04-19時点で、自動コンパイルが出来ていません
はじまりはじまり
公式をみる
スケルトンアプリの立ち上げ
mac 環境なので、homebrewでgradle入れます。
$ brew install gradle
ファイル作ります(コピペ)
build.gradle
buildscript {
repositories {
jcenter()
maven { url "http://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.0.BUILD-SNAPSHOT")
}
}
apply plugin: 'java'
apply plugin: 'org.springframework.boot.spring-boot'
jar {
baseName = 'myproject'
version = '0.0.1-SNAPSHOT'
}
repositories {
jcenter()
maven { url "http://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" }
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
testCompile("org.springframework.boot:spring-boot-starter-test")
}
エントリポイントのファイル作ります(コピペ)
src/main/java/Example.java
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Example.class, args);
}
}
アプリを立ち上げる
cd path/to/build.gradle.dir
$ gradle bootRun
ブラウザを確認して( http://127.0.0.1:8080 )、 Hello World! が表示されてたらOK!
IntelliJでデバッグする
まずこちら読んで下さい
Intellij × Spring-boot × Gradleの開発時のHotSwap問題(と勝手に名付ける)、
http://t.co/998KtzAaWK
このページの手動リロードで一応できることはわかったけど、
手動面倒なのですがどうにかならないですか。お助け。
— takudo (@takudo_dev) 2015, 4月 8
@takudo_dev JRebel使うとか?
|qω・`)チラッ
http://t.co/S6eVANNulq
— いまいまさのぶ (@masanobuimai) 2015, 4月 8
@masanobuimai @takudo_dev IDEAの自動コンパイルは(デバッグ)実行時は働かないという謎仕様なのでcmd(ctrl)+sをmakeに割り当てるか、ターミナルからアプリケーションを起動しておくとかいう回避策があるにはあります。(JRebel使ってても同じ
— 山本裕介 (@yusuke) 2015, 4月 8
ここできちんと理解しておくべきは、
- 自動コンパイル
- 自動リロード(クラスリロード)
の2つが無いと、Play2みたいなイメージのデバッグはできないということです。
IntelliJでプロジェクトを読み込む
割愛
NG: 自動コンパイル
- このへん を参考にしましたが、うまく行きません。
- あとfswatchを使ってgradle build を走らせてみましたが、遅すぎでした(>_<)
- fswatch使って個別のファイルコンパイルさせればうまくいくのかなぁ...
代替: 手動コンパイル&クラスリロード(2015-04-18時点でのよさげな手段)
http://www.jetbrains.com/idea/help/reloading-classes.html
- IntelliJからこのアプリを起動します
- Example.javaを開いて、右クリック→ Debug を選べば起動するはずです。
- Example.javaの内容を変更します。
- メインメニューの Run>Reload Changed Classes を実行するとアプリが再起動することなく、再コンパイルされたクラスがリロードされます
- デバッグ起動しているので、ブレークポイントとかも貼れます。
感想とかこのあと
- 手動トリガーのコンパイルでも結構早いところが救いかな...
- fswatch(というかファイル変更検知)をうまく使ってなんとかしたい