SpringBoot工程打包与发布

1、服务打包方式

springboot服务统一打包成一个可执行的jar包,所有的依赖包集成到一个jar文件。

  • 在服务模块的pom文件中配置打包插件

  • 实现maven打包命令

成功执行命令后,target文件加会生产package-name.jar和package-name.jar.original两个文件,jar为目标可执行文件,original为原始jar包,我们需要的是jar文件。

#此命令在模块pom同级目录执行
mvn package spring-boot:repackage

2、发布到目标服务器

  • 上传jar文件到目标服务器

用应用发布用户(非root用户)在目标服务器建立发布目录结构,并上传jar文件。

参考目录结构如下:

 

service-name.conf 文件配置

此文件需要放置于jar包同级目录,名称保持与jar包一致,主要是设置jar启动参数和环境变量。

 

参考示例:stat-admin.conf

#JVM参数
JAVA_OPTS=-Xmx1024M
#传递到jar的应用参数
RUN_ARGS="--server.port=9911"
#环境变量,当服务作为systed service启动时,系统用户环境变量将会失效,因此需要在此处配置环境变量
JAVA_HOME=/usr/local/jdk-11.0.10/

3、配置systemd方式启动服务

以下命令都需要root用户执行。

  • 编辑service-name.service文件

[Unit] Description=stat-admin

After=syslog.target

[Service]

#实际启动服务的用户,为服务发布用户

User=whrt

#也可以在此处配置环境变量

#Environment="JAVA_HOME=/usr/local/jdk-11.0.10"

ExecStart=/mydata/services/stat-admin/stat-admin.jar

SuccessExitStatus=143

[Install] WantedBy=multi-user.target

新增service配置后,需要执行服务重新加载命令

systemctl daemon-reload

设置开机启动(非必需,根据业务实际需要决定是否需要开机启动)

systemctl enable service-name.service

关闭开机启动

systemctl enable service-name.service

启动服务

systemctl start service-name.service

关闭服务

systemctl stop service-name.service

查看服务状态

systemctl status service-name.service

保险起见,服务启动和停止后,同样需要用ps -ef|grep 来查看进程。

原文地址:https://www.cnblogs.com/joeking/p/15223538.html