Spring Boot项目默认是生成可运行的jar包,虽然Spring有内置的tomcat,但我还是喜欢部署运行在外部的tomcat上,所以不得不将spring boot项目生成war包。
将spring boot项目生成war包网上有很多介绍,但基本都是手动修改,然后通过命令行生成war包。我比较懒,还是喜欢用工具配置生成war包,快速而且高效。下面就是通过IntelliJ生成war包,在此做笔记。
一 使用IntelliJ新建spring boot项目###
1、
2、
这里一定要把 Packaging 选择为 war,这样IntelliJ才会自动给你把项目配置好,不然项目建成后还要手动修改。
3、
在这里你可以选择你需要的功能,我只选了web
4、
这里填写你的项目相关信息和存储位置,可随便填写,填写完后点击Finish生成项目,IntelliJhi会为你配置好所有的信息
打开你生成好的项目,下面简单说一下由IntelliJ自动配置信息
pom.xml#####
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<>......</>
<packaging>war</packaging>
<>......</>
<dependencies>
<>......</>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<>......</>
</dependencies>
<>......</>
</project>
自动加入spring-boot-starter-tomcat <scope>provided</scope>和<packaging>war</packaging>配置
ServletInitializer.java######
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DemoApplication.class);
}
}
自动生成 ServletInitializer.java
此项目无需再做任何修改即可打成war包
新建一个测试类TestController.java,用于部署tomcat后验证是否成功
@RestController
public class TestController {
@RequestMapping("/from")
public String from() {
return "hello world!!!";
}
}
二 在IntelliJ使用maven打war包###
1、
选择IntelliJ右侧MavenProjects,双击package,开始打war包
2、
打war输出信息,显示打war成功,并显示生成的war包路径
三 war包部署tomcat###
1、将生成好的war包复制到tomcat的webapps目录下
2、tomcat无需再做其他配置,直接启动,输出信息没有报错,则说明启动成功,在浏览器中输入上面写的测试类访问地址,验证是否成功(端口可自己通过修改tomcat指定)
OK,生成、部署war包完成