在四处都在讲微服务、分布式的今天,作为约定犹豫配置的spring的升级框架springboot可谓是火的一塌糊涂。这篇文章我们对springboot的打包、部署到服务器、删除并重新部署做个一站式的总结介绍。
前提提要:我使用的是IDEA+maven打包,部署到阿里云的轻量级服务器上,服务器系统是centos。
1、Springboot的打包
1.1、需知
首先我们要知道的是springboot的打包方式有多种,常见的有打包成jar包、打包成war包、打包成解压的文件夹。war包形式和解压的文件夹都是放在服务器下载的tomcat(或其他服务器容器)上(不是重点,不多做介绍),jar包形式是springboot推荐的打包方式,springboot会内置一个tomcat在jar包中,只需在服务器运行jar包就可以使用,不用依赖外界的tomcat。
1.2、打包前准备
1)确保工程中指定的端口在服务器未被占用,确保一项目一端口。
application.properties文件中配置server.port=8090
2)确保数据源连接参数正确
开发时若使用的是本地数据库,那在打包前将数据库连接参数修改为目标数据库。
3)确保工程使用的是jdk不能是jre
1.3 打包
1)在pom.xml中添加如下依赖(一般springboot项目默认有)
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
点击IDEA的maven project任务栏,点击clean清楚之前打包数据后点击package打包项目。或者直接删除target文件夹后点击编译按钮即可再次得到需要的jar文件
2、部署到阿里云(启动)
1)找到jar包用工具传输到服务器(我一般传输的usr/local/springboot/[项目名] 文件夹下,方便查找)
2)启动:可以直接使用java -jar命令,但是这个命令有问题,如果是使用远程工具连接方式操作服务器,那当远程连接窗口关闭项目也会随之停止,并且项目启动后会占据窗口,直接在服务器上操作也是一样,所以需要解决。我们可以通过 nohup 和 & 让项目在后台运行。同时相应的日志会默认输出到nohup.out中,可以查看该文件来查看相应的log。
# --server.port=8090指定端口
nohup java -jar xxx.jar --server.port=8090 &
* nohup:不挂起的意思( no hang up),退出、关闭窗口都不影响;
* &:后台运行。
3)开放端口号
要知道,服务器对端口号默认是不开放的。这个时候我们访问项目是访问不到的。所以我们要开放项目端口号。参考另一篇文章——阿里云轻量级服务器开放端口号
3、删除这个项目
一般来说,这样的部署都是自己的Demo,所以会存在频繁的修改,这个时候我们需要先kill之前的项目进程,然后再启动新的项目进程(千万别直接删除文件以为就完事了,这个时候项目进程在内存中运行,你删除磁盘上的文件没有用)
在上面启动后会有对应的进程ID,通过kill -9 ID 即可停止。
如果我们找不到进程ID了怎么办?推荐以下方法:
1)根据进程名查看进程id
ps aux | grep 进程名
2)根据端口号查看进程id
netstat -nap | grep 端口号