作成したHello Worldのアプリケーション
(Hello World (web app) by Java, Maven, SpringBoot and Eclipse - あかいつき)
ですが、今度はTomcatにデプロイしてみます。
80.1 Create a deployable war file(Spring Boot Reference Guide)
を参考に。
Create war file
warファイルを作成するためにpom.xmlで
<packaging>jar</packaging>
を以下のように変更します。
<packaging>war</packaging>
こちらも追記しておきます。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
また、今のままだと生成したwarファイルの名称が
<artifactId>myapp</artifactId> <version>0.0.1-SNAPSHOT</version>
より
myapp-0.0.1-SNAPSHOT.war
となってしまうため
以下のようにfinalNameを指定します。
<build> <finalName>ROOT</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
これでROOT.warが生成されるはずです。
あとはSpring Boot側ですが、
SpringBootServletInitializerを継承させ、configureをOverrideしています。
package com.example.zzz; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.web.SpringBootServletInitializer; @SpringBootApplication public class MyappApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MyappApplication.class); } public static void main(String[] args) { SpringApplication.run(MyappApplication.class, args); } }
あとはmvn packageを実行すると。。。
* snipe * [INFO] --- spring-boot-maven-plugin:1.3.3.RELEASE:repackage (default) @ myapp --- [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ * snipe *
で、無事warファイルが作成されました!