最近,在用springboot开发一个小应用,springboot默认提供内嵌的tomcat,所以打包直接生成jar包,用java -jar命令就可以启动。但是,有时候我们更希望一个tomcat来管理多个项目,这种情况下就需要项目是war格式的包而不是jar格式的包。接下来就开始吧!
1、首先将pom.xml将打包方式改成war
<packaging>war</packaging>
2、新增依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
这个依赖打war包时加入, 告诉spring-boot tomcat相关jar包用外部的,不要打进去。
3、将项目的启动类Application.java继承SpringBootServletInitializer并重写configure方法
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
4、使用maven插件进行打包。
在pom.xml中的project 下新增:
<build>
<finalName>springboot</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
使用eclipse,Run As->Maven Build… , Goals 中输入clean package,即可打包。然后将war包放入Tomcat的webapps目录下,启动tomcat,即可完成自动解压部署。
在开发环境和部署到生产的时候,jdk和tomcat版本最好要一致,比如jdk1.8,tomcat也要8,否则,开发测试时时ok的,但部署到生产就可能出现各种问题。