Ubuntu20.04.LTS:springboot项目代码打包部署到服务器,启动和停止
要有root权限!!!不然可能会bulid不成功
项目打包(jar)
- Maven默认会将项目打成jar包,也可以在pom.xml文件中指定打包方式。配置示例如下:
<groupId>com.codewater</groupId>
<artifactId>spring-boot-package</artifactId>
<version>1.0.0</version>
<name>spring-boot-package</name>
<!--指定打包方式,其实可以不写,因为默认的就是jar包-->
<packaging>jar</packaging>
- 在项目根目录下,在控制台执行如下命令:
mvn clean package -Dmaven.test.skip=true
mvn clean package其实是两条命令,mvn clean是清除项目target目录下的文件,mvn package打包命令。两个命令可以一起执行。
-Dmaven.test.skip=true:排除测试代码后进行打包。
命令执行完成后,jar包会生成到target目录下,命名一般是“项目名+版本号.jar”的形式。如下图所示。
- 把这个jar包传到服务器,我用的xftp,直接拖。
- 首先添加可执行权限,
chmod a+x jar包名
。a+x
意思是给所有用户添加可执行权限。 - 执行
# 在当前项目的目录下执行
java -jar ./XXX项目-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod # prod指定生产环境
- 上面那个命令有个问题,窗口关掉之后程序就会停止,所以所用下面这个让程序一直在后台运行
nohup java -jar ./XXX项目-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &
jps
和netstat -ntlp
也能查看到java程序的运行
Maven打包生成
- 直接从远程拉取到代码之后,用
mvn package -DskipTests
执行构建项目!
(这个命令也是忽略测试类) - 然后就是进入到target目录,这里也要把jar包添加可执行权限,上面有。然后就是一样的操作了
停止程序运行
其实就是查询到进程的pid,然后kill掉。
- 查询xxx1的进程号,
ps -ef | grep xxx1 # 这个信息多
ps -C 查询的程序-o pid # 这个查出来的结果只有进程pid
- 再通过kill -s 9 ${pid} 进行杀死