home wiki.fukuchiharuki.me
Menu

キーワード

  • 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

参考