引言
首先,我需要明确整个过程的步骤。大致步骤应该是:
1. 环境准备:确保已经安装了 JDK17、IntelliJ IDEA 和 Maven。
2. 打开项目:使用 IntelliJ IDEA 搭建一个现有的项目。
3. 配置项目:编写必要的代码和配置。
4. 打包项目:使用 Maven 将项目打包成 JAR 文件。
5. 部署项目:将打包好的 JAR 文件上传到服务器,并配置运行环境。
6. 运行项目:在服务器上启动 JAR 文件,并验证项目是否正常运行。
接下来,我需要详细思考每一步的具体操作,确保教程中的每一步都清晰明了,适合不同水平的读者。
环境准备
IntelliJ IDEA
是一款由 JetBrains
开发的 Java
集成开发环境(IDE),支持多种编程语言和框架。以下是详细的安装步骤:
- 下载工具
访问官网:打开浏览器,进入 JetBrains 官网。
选择版本:
Ultimate 版:功能全面,适合企业开发,需付费。
Community 版:免费,适合个人和小型项目。
下载:点击 Download
按钮,选择适合你操作系统的版本进行下载。
- 安装工具
- Windows 系统
运行安装程序:找到下载的 .exe
文件,双击运行。
如已安装旧版本,安装时会提示可以卸载已安装版本。
选择安装路径:默认路径为 C:\Program Files\JetBrains\IntelliJ IDEA <版本号>
,可自定义。
TIP
本次下载安装的是 ideaIU-2024.3.3.exe
版本,因此默认安装路径是 C:\Program Files\JetBrains\IntelliJ IDEA 2024.3.3
;
配置安装选项:创建桌面快捷方式,将 IntelliJ IDEA
添加到系统 PATH
。
TIP
如果有需要可以将配置选项中的快捷方式、环境变量及支持的格式全部选中。
选择 开始
菜单文件夹;
开始安装:点击 安装
按钮,等待安装完成。
完成安装:安装结束后,点击“Finish”退出安装程序。
- MacOS 系统
挂载 DMG
文件:双击下载的 .dmg
文件。
拖拽安装:将 IntelliJ IDEA
图标拖到 Applications
文件夹。
启动应用:在 Applications
文件夹中找到 IntelliJ IDEA
,双击启动。
TIP
MacOS操作系统安装本章节不详细说明图文安装教程,有需要的伙伴请自行查阅相关安装文档。
打开项目
IntelliJ IDEA
是一款强大的 IDE
,非常适合开发 Spring Boot
项目。以下是详细步骤:
- 准备工作
安装 IntelliJ IDEA:确保已安装 IntelliJ IDEA(Community 或 Ultimate 版)。
安装 JDK:Spring Boot 需要 JDK 17 或更高版本(推荐JDK17)。
安装 Maven/Gradle:Spring Boot 项目通常使用 Maven 或 Gradle 构建工具。
TIP
特别备注:目前官方全系列项目全部采用 Maven
做版本依赖管理,因此推荐使用 Maven。
- 打开项目
启动 IntelliJ IDEA
:
打开项目:
选择项目:
选中指定项目后,点击 OK
。
TIP
信任项目:首次打开时,IDE
会询问是否信任项目,点击 Trust Project
。
打开项目后如下图:
- 依赖下载
等待依赖下载:IDEA
会自动下载依赖并构建项目。
TIP
在 IntelliJ IDEA
中配置 Maven
是开发 Java
项目的关键步骤。打开项目网络正常的情况会自动下载 Maven
依赖包。当然我们也可以自行指定 Maven
依赖版本。
以下是详细的配置教程:
- 检查
Maven
打开终端或命令提示符,检查 Maven
是否安装,运行以下命令:
E:\apache-maven-3.8.4\bin>mvn -v
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: E:\apache-maven-3.8.4
Java version: 1.8.0_321, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_321\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"
如果显示 Maven
版本信息,说明已安装。
- 安装
Maven
:
如果未安装,可以从 Maven 官网 下载并安装。
TIP
根据实际需要下载需要的版本,此处不作强行要求,也可以使用官方使用的 apache-maven-3.8.4
版本。
- 配置
Maven
打开设置:进入 File > Settings(Windows/Linux)
或 IntelliJ IDEA > Preferences(macOS)
。
找到 Maven
配置:在左侧导航栏中,选择 Build, Execution, Deployment > Build Tools > Maven
。
> 配置 Maven 主目录:
在 `Maven home path` 中,选择已安装的 `Maven` 路径(例如:`E:\apache-maven-3.8.4`)。
> 配置用户设置文件:
在 User settings file 中,指定 settings.xml 文件的路径(通常位于 ~/.m2/settings.xml)。
> 配置本地仓库:
在 Local repository 中,指定 Maven 本地仓库路径(通常位于 ~/.m2/repository)。
应用更改:
点击 Apply
和 OK
保存配置。
配置项目
在项目中,通常需要为不同的环境(如本地、开发、测试、UAT、生产)配置不同的配置文件。通过多环境配置,可以灵活地管理不同环境下的参数(如数据库连接、日志级别、第三方服务地址等)。
本项目采用多环境配置文件的命名规则,支持通过 application-{profile}.properties
或 application-{profile}.yml
文件来定义不同环境的配置。其中 {profile}
是环境名称。
# 本地环境
application-local.yml
# 开发环境
application-dev.yml
# 测试环境
application-test.yml
# UAT 环境
application-uat.yml
# 生产环境
application-prod.yml
TIP
默认情况下,会加载 application.properties
或 application.yml
作为通用配置,然后根据激活的环境加载对应的配置文件。
本项目的启动模块是 xiaomayi-modules/xiaomayi-admin
模块,在模块的 POM
文件中定义了支持多种环境变量,包括 local
、dev
、test
、uat
、prod
等环境参数和变量。
<!-- 全局编译环境变量 -->
<profiles>
<!-- 本地开发环境 -->
<profile>
<id>local</id>
<properties>
<package.environment>local</package.environment>
</properties>
<activation>
<!-- 设置默认开启本地环境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 开发环境 -->
<profile>
<id>dev</id>
<properties>
<package.environment>dev</package.environment>
</properties>
</profile>
<!-- 测试环境 -->
<profile>
<id>test</id>
<properties>
<package.environment>test</package.environment>
</properties>
</profile>
<!-- 预发布环境 -->
<profile>
<id>uat</id>
<properties>
<package.environment>uat</package.environment>
</properties>
</profile>
<!-- 生产环境 -->
<profile>
<id>prod</id>
<properties>
<package.environment>prod</package.environment>
</properties>
</profile>
</profiles>
通过 @package.environment@
作为占位,可以在 application.yml
或 application.properties
中动态设置 spring.profiles.active
。
spring:
profiles:
active: @package.environment@
环境变量和参数配置后,在工具 maven
插件中会同步读取并呈现,如下图:
本次项目打包我们模拟生产环境发布,选择 prod
环境分支,因此根据配置文件规则,默认读取的是 application.yml
公共配置文件 和 application-prod.yml
分支环境配置文件。
- 公共环境
application.yml
配置文件
# 全局配置
spring:
application:
name: xiaomayi-admin
# main:
# allow-bean-definition-overriding: true
# 全局配置文件
config:
# 导入配置文件
import:
# Mybatis配置文件
- configs/application-mybatis.yml
# 日志配置文件
- configs/application-logger.yml
# 安全认证配置文件
- configs/application-security.yml
# 在线文档配置文件
- configs/application-springdoc.yml
# knife4j配置文件
- configs/application-knife4j.yml
# freemarker模板引擎配置文件
- configs/application-freemarker.yml
# thymeleaf模板引擎配置文件
- configs/application-thymeleaf.yml
# 多租户配置文件
- configs/application-tencent.yml
# actuator监控文件
- configs/application-actuator.yml
# 微信支付、支付宝支付配置文件
- configs/application-pay.yml
# 运行环境 local|dev|test|uat|prod,根据active动态加载YML配置文件
profiles:
active: @package.environment@
# 国际化资源
messages:
# 国际化资源文件路径
basename: i18n/messages
encoding: UTF-8
# 文件上传配置
servlet:
# 设置最大文件上传大小为10MB
multipart:
# 开启上传文件配置
enabled: true
# 文件上传临时保存位置,没有写入最终保存位置时存放的位置;
location: /data/
# 上传单个文件最大大小,设置-1表示不限制
max-file-size: 10MB
# 上传一组文件最大大小,设置-1表示不限制
max-request-size: 10MB
# 是否延迟解析,相当于懒加载
resolve-lazily: false
# 文件大小阈值,当大于这个阈值时将写入到磁盘,否则存在内存中,默认为0
file-size-threshold: 0
# 时间格式化
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
# 开发工具
devtools:
restart:
# 开启热部署(更改文件后,自动重启)
enabled: true
# 设置哪些资源变动后不触发热部署,会覆盖默认的exclude内容(资源不会触发重启,但会触发实时重新加载)
#exclude: WEB-INF/**,static/**
# 监控额外的路径(优先于exclude)
#additional-paths: src/main/java
##Actuator配置:暴露敏感路径,默认情况下,敏感路径并不暴露
#management:
# endpoints:
# web:
# exposure:
# # 暴露xxx端点,如需暴露多个,用,分隔;如需暴露所有端点,用'*'
# include: "*"
# endpoint:
# health:
# # 是否展示健康检查详情
# show-details: ALWAYS
#
## info信息会显示到SpringBootAdmin的server端,这里取的是pom文件中的数据
#info:
# version: @project.version@
# groupId: @project.groupId@
# artifactId: @project.artifactId@
TIP
上述配置中 spring.config.import
等导入的配置则为其他独立的配置文件(按需引入)。
独立配置文件导入方式如下:
# 全局配置文件
config:
# 导入配置文件
import:
# Mybatis配置文件
- configs/application-mybatis.yml
# 其他配置文件(按需引入)
- 环境分支
application-prod.yml
配置文件
# 服务配置
server:
# 端口
port: 8081
servlet:
# 访问上下文前缀
context-path: /api
spring:
# 全局配置
config:
# 导入配置
import:
# redis缓存配置,按需引入
- configs/prod/application-redis.yml
# 邮件配置,按需引入
- configs/prod/application-email.yml
# 阿里云OSS、SMS配置,按需引入
- configs/prod/application-aliyun.yml
# Minio文件存储配置,按需引入
- configs/prod/application-minio.yml
# Elastic搜索引擎配置,按需引入
- configs/prod/application-elastic.yml
# 钉钉消息配置,按需引入
- configs/prod/application-dingtalk.yml
# 令牌配置,按需引入
- configs/prod/application-token.yml
# 数据源配置
datasource:
# 连接池类型
type: com.alibaba.druid.pool.DruidDataSource
dynamic:
# 设置默认的数据源或者数据源组,默认值为master
primary: master
# 严格匹配数据源,默认false,true未匹配到指定数据源时抛异常,false使用默认数据源
strict: false
# 多数据源支持,切记实际使用时按需使用,不需要的数据源注释掉
datasource:
# 主数据库MySQL
master:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/xiaomayi.elevue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: root
# # 从数据库MySQL,切记主从库时从库与主库表结构一致
# slave:
# enabled: false
# driverClassName: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://127.0.0.1:3306/xiaomayi.elevue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
# username: root
# password: 123456
# # 数据库PG
# postgres:
# enabled: false
# driverClassName: org.postgresql.Driver
# url: jdbc:postgresql://localhost:5432/xiaomayi.elevue?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
# username: postgres
# password: 123456
# # 数据库MSSQL
# sqlserver:
# enabled: false
# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
# url: jdbc:sqlserver://localhost:1433;DatabaseName=xiaomayi.elevue;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true
# username: sa
# password: 123456
# Druid的其他属性配置 springboot3整合情况下,数据库连接信息必须在Druid属性下
druid:
# 初始连接物理个数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间,单位毫秒
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 用来检测数据库连接是否有效的sql 必须是一个查询语句(oracle中为 select 1 from dual)
validationQuery: SELECT 1 FROM DUAL
# 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
testWhileIdle: true
# 申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
testOnBorrow: false
# 归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
testOnReturn: false
# 打开PSCache,并且指定每个连接上PSCache的大小
# 是否缓存preparedStatement, 也就是PSCache,PSCache对支持游标的数据库性能提升巨大,比如说oracle,在mysql下建议关闭。
poolPreparedStatements: true
# 配置监控统计拦截的filters:去掉后监控界面sql无法统计,'wall'用于防火墙,stat:监控统计、self4j(使用log4j的记得导入log4j的依赖):日志记录、wall:防御sql注入 此处配置不能遗漏服务sql监控台不能监控sql
filters: stat,wall,log4j
# 保持长连接
keepAlive: true
# 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100
maxPoolPreparedStatementPerConnectionSize: 20
# 合并多个DruidDataSource的监控数据
useGlobalDataSourceStat: true
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
webStatFilter:
# 是否启用StatFilter默认值true
enabled: true
# 添加过滤规则
url-pattern: /*
# 忽略过滤的格式
exclusions: /druid/*,*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico
# 配置DruidStatViewServlet
statViewServlet:
# 是否启用StatViewServlet默认值true
enabled: true
# 访问路径为/druid时,跳转到StatViewServlet
url-pattern: /druid/*
# IP白名单(没有配置或者为空,则允许所有访问)
allow:
# IP黑名单 (共同存在时,deny优先于allow)
deny:
# 禁用HTML页面上的“Reset All”功能
reset-enable: false
# 控制台登录名,默认为root
login-username: admin
# 控制台登录密码
login-password: 123456
# 配置过滤
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
enabled: true
config:
multi-statement-allow: true
# 系统配置
system:
# 软件名称
name: 小蚂蚁云
# 软件版本
version: 1.0.0
# 本地存储路径
profile: /opt/apps/upload/
# 本地资源访问域名
domain: http://images.example.com
# 演示环境
demo: true
# 代码工具
generator:
# 软件作者
author: 小蚂蚁云团队
# 生成代码存储模块,实际使用时根据需要自行修改
modelName: xiaomayi-admin
# 生成文件包路径,实际使用时根据需要自行修改
packageName: com.xiaomayi.admin
# 生成文件是否去除前缀,默认是false
removePrefix: true
# 数据表前缀,多个逗号“,”分割
tablePrefix: sys_,gen_,qrtz_,cms_
TIP
在环境变量分支配置文件中,选用指定的数据库驱动和配置相关的数据库连接账号,本项目主要以 MySQL
数据库为主,其他类型数据库支持的扩展库;
打包项目
本项目通过 Maven
打包成可执行的 JAR
文件,然后通过命令行或 IDEA
工具启动。
- 检查
POM
确保 pom.xml
中已包含 spring-boot-maven-plugin
插件(项目默认已包含,此处可以忽略)。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- 通过工具打包
通过 Maven
工具栏打包,在 IDEA
右侧,点击 Maven
标签(如果没有,可以通过 View > Tool Windows > Maven
打开)。
运行打包命令:
展开 Lifecycle,双击 package 命令。
IDEA 会执行 mvn clean package,生成 JAR 文件。
打包执行过程和结果如下图:
TIP
查看生成的 JAR 文件:
打包完成后,在项目的 target
目录下会生成一个可执行的 JAR
文件(例如:xiaomayi-admin-biz.jar
)。
- 通过命令行打包
打开 CMD
终端:
- 查看
java
版本
PS E:\XiaoMaYi\XiaoMaYi-Nacos-ArcoVue> java --version
java 17.0.9 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 17.0.9+11-LTS-201)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.9+11-LTS-201, mixed mode, sharing)
- 查看
mvn
版本
PS E:\XiaoMaYi\XiaoMaYi-Nacos-ArcoVue> mvn -v
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: E:\apache-maven-3.8.4
Java version: 17.0.9, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-17
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"
- 执行命令打包
选择 prod
环境执行打包,确保在 pom.xml
中启用了资源过滤(<filtering>true</filtering>
),否则 @package.environment@
不会被替换。
mvn clean package -Pprod
打包完成后,JAR
文件会生成在 target
目录下。
TIP
打包的方式有很多,可以使用
IDEA
工具打包,也可以使用命令打包,底层原理都是一样的,有能力的企业、开发者可以安装部署Jenkins
工具,实现DevOps
自动化运维打包与发布,当然也可以使用Docker
容器化方解决案部署项目。针对中小企业和开发者没有专业的运维工程师,官方提供了相关配套增值服务,包括但不限于
Jenkins
、Docker
、K8S
等项目部署的DevOps
解决方案,有需要的可以去官方购买服务,购买服务后官方会安排专业的运维工程师远程帮您搭建完整配套的软件生态和服务支持。
部署项目
准备一台 4核 8G内存 50G硬盘
的 CentOS Stream
服务器,确保已安装部署基础软件,包括但不限于 MySQL
、Nginx
、JDK
、Redis
等软件。
- 检查
java
版本
[root@localhost S1]# java --version
java 17.0.11 2024-04-16 LTS
Java(TM) SE Runtime Environment (build 17.0.11+7-LTS-207)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.11+7-LTS-207, mixed mode, sharing)
- 检查
redis
版本
[root@localhost S1]# redis-cli --version
redis-cli 6.0.9
- 检查
MySQL
版本
[root@localhost S1]# mysql -V
mysql Ver 14.14 Distrib 5.7.35, for Linux (x86_64) using EditLine wrapper
TIP
推荐使用 MySQL8
数据库,此处仅作为案例示意。
- 检查
MySQL
版本
[root@localhost S1]# nginx -V
nginx version: nginx/1.18.0
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC)
built with OpenSSL 1.1.1k FIPS 25 Mar 2021
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_gzip_static_module
- 上传
JAR
包
使用客户端执行 scp
命令或者使用 SFTP
、XShell
等客户端工具远程连接服务器并上传 JAR
。官方以 XShell
客户端工具为例进行说明。
- 打开
XShell
工具
- 上传
JAR
包
- 查看
JAR
包
[root@localhost src]# pwd
/usr/local/src
[root@localhost src]# ll
总用量 376896
-rw-r--r-- 1 root root 182753781 6月 25 2024 jdk-17_linux-x64_bin.tar.gz
-rw-r--r-- 1 root root 203184475 2月 26 02:18 xiaomayi-admin-biz.jar
[root@localhost src]# df -TH
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 127M 1.9G 7% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 37G 14G 24G 36% /
/dev/sda2 xfs 1.1G 291M 774M 28% /boot
/dev/sda1 vfat 628M 7.6M 621M 2% /boot/efi
overlay overlay 37G 14G 24G 36% /var/lib/docker/overlay2/4ca53933946e031bd16e2e5562a80cc842f86d7875662270b49a6316fa3034d3/merged
overlay overlay 37G 14G 24G 36% /var/lib/docker/overlay2/56c9e346e9a8cd20c181fdfb7f3de45f89ca2c3c2eb18286746d78322c5bbc9a/merged
overlay overlay 37G 14G 24G 36% /var/lib/docker/overlay2/e1b96d90546e9753dfce03752a96a9d823407e6012abe9c9b228680d7c332f7e/merged
overlay overlay 37G 14G 24G 36% /var/lib/docker/overlay2/72640ac62ad38de1f428f2d0228eb83782440ecf933c38e934c17dab2ed7e762/merged
overlay overlay 37G 14G 24G 36% /var/lib/docker/overlay2/67e7164c42f815d6de1aaf3113eb3dc80e58a43161a044f20364674db50d68f3/merged
overlay overlay 37G 14G 24G 36% /var/lib/docker/overlay2/6eaedcc81682a5ae6a162a33b34f7a8800e0bf09e4d67bd251f9ee7c1b5c9c20/merged
tmpfs tmpfs 392M 0 392M 0% /run/user/1000
查看 JAR
大小:
[root@localhost src]# du -sh xiaomayi-admin-biz.jar
194M xiaomayi-admin-biz.jar
TIP
从上述查询结果可以看出,本次打包 JAR
包的大小是:194M。
运行项目
打包完成后,生成的 JAR
文件会根据 @package.environment@
的值自动激活对应的环境配置。在已安装部署好运行环境的 Linux
服务器上启动应用。
- 直接启动
java -jar xiaomayi-admin-biz.jar
TIP
如果打包时指定了 -Pprod
,则会激活 application-prod.yml
中的配置。
- 守护进程启动
如果需要以后台守护进程的方式启动,则需以下操作:
- 使用
nohup
命令
nohup java -jar xiaomayi-admin-biz.jar > app.log 2>&1 &
参数说明:
nohup:让进程在后台运行,即使关闭终端也不会停止。
> app.log:将日志输出到 app.log 文件。
2>&1:将错误输出重定向到标准输出。
&:在后台运行。
查看日志:
tail -f app.log
- 使用
systemd
管理服务
创建服务文件:
在 /etc/systemd/system/
目录下创建一个服务文件(例如 myapp.service
):
vi /etc/systemd/system/myapp.service
文件内容示例:
[Unit]
Description=My Spring Boot Application
After=syslog.target
[Service]
User=user
ExecStart=/usr/bin/java -jar /usr/local/src/xiaomayi-admin-biz.jar
SuccessExitStatus=143
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
启动服务:
# 重新加载 systemd 配置
systemctl daemon-reload
# 启动服务
systemctl start myapp
# 设置开机自启
systemctl enable myapp
查看服务状态:
使用以下命令查看服务状态:
systemctl status myapp
设置执行权限:
确保 JAR 文件和日志文件有正确的权限
chmod 755 xiaomayi-admin-biz.jar