Spring Boot/warファイルを作成する
キーワード
- 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
参考
作成日 2017-04-14
