Spring Boot + Gradleでwarファイルを作成する方法

Spring Boot + Gradleでwarファイルを作成する方法

STSのスタータープロジェクトで作成したプロジェクトはデフォルトでjarファイルを作成してくれますが、build.gradleとかいくつか修正することで、プロジェクト名\build\libs配下にwarファイルを作成することができます。

まず@SpringBootApplicationアノテーションのクラスはSpringBootServletInitializerを継承するようにします。configureメソッドを以下のようにオーバーライドします。

次にbuild.gradleを修正します。

上記を追加します。warファイルの名前を指定したい場合は以下のように書いて名前を指定します。

dependencies{}内に以下を追記しておく必要があります。

これでwarタスクを実行すればa.warファイルがlibs配下に作成されます。

スタータープロジェクトでwarを選択する

スタータープロジェクトでwarを選択するとデフォルトでServletInitializer.javaが作成されます。

またbuild.gradleからjarが消えてwarに変わっています。依存関係で以下1文が追加され、組込Tomcatがwar作成時には入らないようになっています。

別のTomcatにwarデプロイするときにmainメソッドは実行されずにconfigureメソッドが実行されるようになります。

warファイル名を指定したい場合は、bootWarで指定します。

標準プラグインのwarを使用すると、bootWarタスクを使用するようになっています。

https://spring.pleiades.io/spring-boot/docs/current/gradle-plugin/reference/html/

warファイル構成

warファイルのフォルダ構成でWEB-INF直下にxmlファイルなどを配置してwarファイルにしたい場合は、Gradleプロジェクトをsrc/main/webapp/WEB-INF/というフォルダ構成にして、WEB-INF配下にxmlファイルなどを配置します。

これで、warファイル作成すればWEB-INF直下にファイルが配置されます。

src/main/resource/配下に置いてあるapplication.ymlなどは、WEB-INF/classes配下に配置されます。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA