引言
首先,我需要明确整个过程的步骤。大致步骤应该是:
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
保存配置。
配置项目
- 注册中心服务
本项目采用分布式架构,以 Nacos
作为核心的服务注册与配置管理中心。通过 Nacos
,实现了服务的自动注册、发现与动态配置管理,显著提升了系统的可维护性、弹性与可观测性。
为有效管理不同生命周期的应用配置,在 Nacos
中我们根据软件研发与交付流程,划分了多套隔离的环境(Namespace),包括:local(本地开发)
、dev(开发集成)
、test(测试)
、uat(用户验收/预发布)
、prod(生产)
等。这种多环境策略确保了从开发到上线全流程的配置隔离与一致性。
- 根POM配置文件
本项目根 POM
文件中已预置多环境配置,支持 local(本地)
、dev(开发)
、test(测试)
、uat(预发布)
、prod(生产)
等多种环境,可灵活切换对应参数与变量。
<!-- 全局编译环境变量 -->
<profiles>
<!-- 本地开发环境 -->
<profile>
<id>local</id>
<properties>
<!-- 本地环境分支定义 -->
<package.environment>local</package.environment>
<!-- nacos注册配置中心服务地址 -->
<nacos.server>127.0.0.1:8848</nacos.server>
<!-- nacos服务注册分组 -->
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<!-- nacos服务配置分组 -->
<nacos.config.group>DEFAULT_GROUP</nacos.config.group>
<!-- nacos登录账号 -->
<nacos.username>nacos</nacos.username>
<!-- nacos登录密码 -->
<nacos.password>nacos</nacos.password>
<!-- ELK日志收集服务地址 -->
<logstash.address>127.0.0.1:4560</logstash.address>
</properties>
<activation>
<!-- 设置默认开启本地环境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 开发环境 -->
<profile>
<id>dev</id>
<properties>
<!-- 开发环境分支定义 -->
<package.environment>dev</package.environment>
<!-- nacos注册配置中心服务地址 -->
<nacos.server>127.0.0.1:8848</nacos.server>
<!-- nacos服务注册分组 -->
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<!-- nacos服务配置分组 -->
<nacos.config.group>DEFAULT_GROUP</nacos.config.group>
<!-- nacos登录账号 -->
<nacos.username>nacos</nacos.username>
<!-- nacos登录密码 -->
<nacos.password>nacos</nacos.password>
<!-- ELK日志收集服务地址 -->
<logstash.address>127.0.0.1:4560</logstash.address>
</properties>
</profile>
<!-- 测试环境 -->
<profile>
<id>test</id>
<properties>
<!-- 测试环境分支定义 -->
<package.environment>test</package.environment>
<!-- nacos注册配置中心服务地址 -->
<nacos.server>127.0.0.1:8848</nacos.server>
<!-- nacos服务注册分组 -->
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<!-- nacos服务配置分组 -->
<nacos.config.group>DEFAULT_GROUP</nacos.config.group>
<!-- nacos登录账号 -->
<nacos.username>nacos</nacos.username>
<!-- nacos登录密码 -->
<nacos.password>nacos</nacos.password>
<!-- ELK日志收集服务地址 -->
<logstash.address>127.0.0.1:4560</logstash.address>
</properties>
</profile>
<!-- 预发布环境 -->
<profile>
<id>uat</id>
<properties>
<!-- 预发布环境分支定义 -->
<package.environment>uat</package.environment>
<!-- nacos注册配置中心服务地址 -->
<nacos.server>127.0.0.1:8848</nacos.server>
<!-- nacos服务注册分组 -->
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<!-- nacos服务配置分组 -->
<nacos.config.group>DEFAULT_GROUP</nacos.config.group>
<!-- nacos登录账号 -->
<nacos.username>nacos</nacos.username>
<!-- nacos登录密码 -->
<nacos.password>nacos</nacos.password>
<!-- ELK日志收集服务地址 -->
<logstash.address>127.0.0.1:4560</logstash.address>
</properties>
</profile>
<!-- 生产环境 -->
<profile>
<id>prod</id>
<properties>
<!-- 生产环境分支定义 -->
<package.environment>prod</package.environment>
<!-- nacos注册配置中心服务地址 -->
<nacos.server>192.168.10.113:8848</nacos.server>
<!-- nacos服务注册分组 -->
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<!-- nacos服务配置分组 -->
<nacos.config.group>DEFAULT_GROUP</nacos.config.group>
<!-- nacos登录账号 -->
<nacos.username>nacos</nacos.username>
<!-- nacos登录密码 -->
<nacos.password>nacos</nacos.password>
<!-- ELK日志收集服务地址 -->
<logstash.address>127.0.0.1:4560</logstash.address>
</properties>
</profile>
</profiles>
环境变量和参数配置后,在工具 maven
插件中会同步读取并呈现,如下图:
- 读取配置文件
在每个微服务的公共 application.yml
配置文件中,已预置自动化配置机制。系统会根据当前应用的服务名称 spring.application.name
,自动识别环境并动态加载 Nacos
中对应命名空间 Namespace
的配置文件。该设计实现了不同环境配置的无缝切换与隔离管理。本次项目打包我们模拟生产环境发布,选择 prod
环境分支,因此根据配置文件规则,默认读取的是 application.yml
公共配置文件和注册配置中心对应环境下的指定配置文件。
- 公共配置文件
# 服务配置
server:
# 端口号
port: 9030
servlet:
# 访问上下文前缀
context-path: /
# 应用配置
spring:
# 文件配置
config:
# 导入配置文件
import:
# 公共配置文件
- optional:nacos:application.yml
# 服务配置文件
- optional:nacos:${spring.application.name}.yml
# Mybatis配置文件
- optional:nacos:application-mybatis.yml
# 监控管理配置文件
- optional:nacos:application-actuator.yml
# 在线文档配置文件
- optional:nacos:application-springdoc.yml
# knife4j配置文件
- optional:nacos:application-knife4j.yml
# 安全认证配置文件
- optional:nacos:application-security.yml
# 多租户配置文件
- optional:nacos:application-tenant.yml
application:
# 应用名称
name: @artifactId@
# 环境变量
profiles:
# 动态配置运行环境 local|dev|test|uat|prod,根据active动态加载YML配置文件
active: @package.environment@
---
# nacos服务配置
spring:
cloud:
nacos:
# 注册配置中心服务地址
server-addr: @nacos.server@
# 登录账号
username: @nacos.username@
# 登录密码
password: @nacos.password@
# 服务注册
discovery:
# 服务注册分组
group: @nacos.discovery.group@
# 命名空间
namespace: ${spring.profiles.active}
# 服务配置
config:
# 是否开启配置中心 默认true
enabled: true
# 导入检查
import-check:
# 开启检查
enabled: true
# 服务配置分组
group: @nacos.config.group@
# 命名空间
namespace: ${spring.profiles.active}
# 配置文件后缀
file-extension: yml
# 安全认证
security:
oauth2:
authorizationserver:
token-uri: http://127.0.0.1:9020/oauth2/token
resourceserver:
jwt:
jwk-set-uri: http://127.0.0.1:9020/oauth2/jwks
按需引入
上述配置中 spring.config.import
等导入的配置则为其他独立的配置文件(按需引入)。
独立配置文件导入方式如下:
# 全局配置文件
config:
# 导入配置文件
import:
# Mybatis配置文件
- configs/application-mybatis.yml
# 其他配置文件(按需引入)
通过 @package.environment@
作为占位,可以在 application.yml
或 application.properties
中动态设置 spring.profiles.active
。
spring:
profiles:
active: @package.environment@
- 服务配置文件
spring:
main:
allow-bean-definition-overriding: true
# 数据源配置
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.nacos.naivevue?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://localhost:3306/xiaomayi.nacos.naivevue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: root
# 数据库PG
postgres:
enabled: false
driverClassName: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/xiaomayi.nacos.naivevue?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
username: postgres
password: root
# 数据库MSSQL
sqlserver:
enabled: false
driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://localhost:1433;DatabaseName=xiaomayi.nacos.naivevue;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true
username: sa
password: 123456
# 数据库Sqlite
sqlite:
enabled: false
driverClassName: org.sqlite.JDBC
# url: jdbc:sqlite::resource:db/xiaomayi.nacos.naivevue.db;
url: jdbc:sqlite:D:/xiaomayi.nacos.naivevue.db?date_string_format=yyyy-MM-dd HH:mm:ss
username: root
password: root
# 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
# 申请连接的时候检测,如果空闲时间大于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: 2.0.0
# 本地存储路径
profile: F:\xiaomayi\upload\
# 本地资源访问域名
domain: http://127.0.0.1:9010/api/admin/file
# 演示环境
demo: false
# 代码工具
generator:
# 软件作者
author: 小蚂蚁云团队
# 生成代码存储模块,实际使用时根据需要自行修改
serviceModelName: xiaomayi-services/xiaomayi-system/xiaomayi-system
# 生成文件包路径,实际使用时根据需要自行修改
servicePackageName: com.xiaomayi.system
# 生成代码存储模块,实际使用时根据需要自行修改
moduleModelName: xiaomayi-modules/xiaomayi-admin/xiaomayi-admin
# 生成文件包路径,实际使用时根据需要自行修改
modulePackageName: 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-NaiveVue> 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-NaiveVue> 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