エキサイト株式会社メディア事業部エンジニアの佐々木です。メディア事業部では、SpringBoot、Gradle、IntelliJでリビルド開発を日々行っています。Dockerを使ったローカル環境での開発を行っています。開発でのSpringBootの起動方法は複数ありますので、3つご紹介します。
前提
スタックは下記になります。
SpringBoot: 2.6.3 Java: 17.0.2 Gradle: 7.3.3
設定
build.gradleに下記の設定を行います。
bootRun { sourceResources sourceSets.main // resourcesディレクトリの参照先を /buildディレクトリではなく、/main配下を参照するようにする jvmArgs = [ '-Dspring.output.ansi.enabled=ALWAYS', // ログに色付を行う '-Dspring.profiles.active=local' // localのプロファイルを使用する ] }
結論
結論として、IntelliJからGradleタスクを起動しましょう
になります。デメリットもとくになく、起動も簡単です。SpringBoot devtoolsを入れれば、コード保存時にビルドが走れば、Hot Restartしてくれます。(Hot Reloadじゃないです)
IntelliJからmainメソッドを使って起動
IntelliJの機能でmainメソッドはエディタ上から起動できます。 これでSpringBootは起動できます。
メリット
デメリット
- SpringBoot devtools が思ったように動かない
- Gradleの設定が効いたり効かなかったり(GradleDaemonが増え続けていたときもある)
sourceResources sourceSets.main
の設定が効かない- Thymeleafなどのテンプレートファイルやjs/css等のファイルを更新しても読み込まれない
gradleコマンドから起動
下記コマンドでの起動します。
$ ./gradlew web:bootRun
メリット
- IntelliJがなくても可能
- Gradleの設定が効く
sourceResources sourceSets.main
の設定が効く
デメリット
- デバッグ機能を使うには追加で設定が必要になる( remote debug の設定が必要になる)
IntellijからGradleタスクで起動
IntelliJに入っているGradleプラグインからSpringBootを起動します。
メリット
- Gradleの設定が効く
sourceResources sourceSets.main
の設定が効く
デメリット
いまのところなし
まとめ
起動方法が複数あるので、チーム内であわせていきたいところです。
終わりに
エキサイトではフロントエンジニア、バックエンドエンジニア、アプリエンジニアを随時募集しております。長期インターンも歓迎していますので、興味があれば連絡いただければと思います。
カジュアル面談はこちらになります! meety.net
募集職種一覧はこちらになります!(カジュアルからもOK) www.wantedly.com