キーワード†
- Spring Boot
- war
- ビルド
- Tomcat
したいこと†
Spring Bootでwarファイルを作成する。
どうやって†
build.gradle の設定†
project(':web') { apply plugin: 'org.springframework.boot' apply plugin: 'war' war { archiveName 'web.war' } dependencies { ... compile('org.springframework.boot:spring-boot-starter-web') providedRuntime("org.springframework.boot:spring-boot-starter-tomcat") ... } }
warを作成するために追加したのは次。
apply plugin: 'war'
war { archiveName 'web.war' }
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
Applicationクラスの修正†
@SpringBootApplication public class WebApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(WebApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(WebApplication.class); } }
- SpringBootServletInitializerをextendsして
- configureメソッドをoverrideする
- main関数は削除しなくていい
Gradleでビルド†
gradle build
でもいいし、
gradle war
でもいい。
- /path/to/project/build/lib/web.war が作成される
あとはTomcatに置いて実行するだけ。
ノート†
warを作成するようにしてもSTSからは組み込みTomcatで起動できる。
このとき、コンテキストパスを合わせるためにapplication.ymlを設定しておくと、テストしやすいかもしれない。
server: contextPath: /web