这两天业务需要搭了个Spring boot+JPA项目,需要发布到服务器的tomcat上,在这记录一下。
修改打包形式
Spring boot默认是生成jar包的,需要在pom.xml里面设置打包形式。
<packaging>war</packaging>
修改启动tomcat
在Spring boot里面有一个默认的tomcat插件,在服务器的tomcat上面就不需要这个了。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--移除tomcat启动插件-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
修改启动类
在服务器的tomcat容器中部署的WAR的,就不能依赖于Application的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文。所以需要修改启动类,修改如下:
@SpringBootApplication
public class MySpringBootApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MySpringBootApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class, args);
}
}
修改包名
打包的时候,需要自定义包名,代码如下:
<build>
<finalName>自定义包的名字</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
运行部署
- 可以在项目的根目录下,在命令行里输入: mvn clean package即可, 等待打包完成,出现[INFO] BUILD SUCCESS即为打包成功。
然后把target目录下的war包放到tomcat的webapps目录下,运行tomcat的bin目录下startup.bat启动tomcat,即可自动解压部署。 - 用 idea 的话可以在idea里面的最右边有个功能,可以一件打包。
访问地址 :http://localhost:[tomcat端口号]/[自定义项目名]/