一、打包前准备
1、 打包前确认工程中指定的端口在服务器在未被占用。
application.properties文件
server.port=8090
确保该端口已经添加到你的阿里云安全组中。
2、 确保数据源连接参数正确,开发时若使用的是本地数据库,那在打包前将数据库连接参数修改为目标数据库
#datasource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://数据库所在主机ip:3306/数据库名?useSSL=true&characterEncoding=utf-8
spring.datasource.username = ***
spring.datasource.password = ***
一般分为两种;一种是打包成 jar 包直接执行,另一种是打包成 war 包放到 tomcat 服务器下。
springboot内置了tomcat,所以后面我们把它打包成jar包就可以免去tomcat的配置了(如果是打包成war包,那还是要配置tomcat的)。
二、通过jar包发布
1.运行打包任务
2.生成jar包
打包任务完成以后会生成target文件夹.
3.运行jar包
在自己的云服务器上面或者是本地服务器上面(必须要安装jdk环境)启动项目.
java -jar xxx.jar
4.通过浏览器访问
三、通过war包发布
1、修改默认打包方式,讲打包方式改为war
<project>
<version>0.0.1-SNAPSHOT</version><!--打包时版本号-->
<name>demo</name><!--打包时名称-->
<description>Demo project for Spring Boot</description><!--打包时简介-->
<!--在打包到生产环境Tomcat时指明打包方式-->
<packaging>war</packaging>
</project>
2、排除springboot内置的tomcat的容器
<!--当打war包到tomcat时,自动排除内置的tomcat,避免二者产生冲突-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。
相当于compile,但是打包阶段做了exclude操作-->
<scope>provided</scope>
</dependency>
3、继承SpringBootServletInitializer类,并重写config方法
全称:org.springframework.boot.web.servlet.support.SpringBootServletInitializer,官方文档也有详细介绍为什么要继承。
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
4、端口,路径设置:
- 我们在application.properties或者在application.yml中对tomcat配置的port和context-path对war文件是不起作用的,那个配置只对springboot内置的tomcat起作用。当我们把war部署到生产环境时,端口就是生产环境的端口,context-path就是war的文件名,或者自己在tomcat中配置的其他名字。
- 为了防止应用上下文所导致的项目访问资源加载不到的问题,
建议pom.xml文件中<build></build>标签下添加<finalName></finalName>标签:
<build>
<!--打war包到生产环境时配置-->
<finalName>photoSystem</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
SpringBoot项目部署到阿里云服务器全流程
使用springboot打war包,并部署到tomcat下
springboot打war包,部署到外部tomcat
网友评论