一.全过程
在 RHEL/CentOS/Rocky Linux 9.x 系统(目标主机 172.25.254.100)上,通过「JDK11+Maven3.9.6」编译 ZrLog 源码生成 War 包,搭配 MariaDB(数据库)+Tomcat10(应用容器)+Nginx(反向代理)完成部署,最终实现浏览器访问 ZrLog 博客系统。
源码 → Maven 构建(依赖下载 + 编译 + 打包)→ War 包 → Tomcat 部署 → Nginx 反向代理 → 浏览器访问;
所需要的安装包


二.前置环境准备
2.1 安装并配置 JDK 1
解压并配置全局环境变量


生效并验证

2.2 安装 Maven + 配置阿里云镜像(关键优化)
解压并 配置全局环境变量

修改配置文件
vim /root/maven/conf/settings.xml

输出Maven版本即成功

pom.xml(Project Object Model,项目对象模型)是 Maven项目的"灵魂配置文件",用于定义项目的所有核心信息,是Maven构建、依赖管理、打包的唯一依据(实验中核心作用是解决"无War包""依赖下载"问题)。
三.Maven 构建 ZrLog War 包(核心步骤)
3.1解压 ZrLog 源码压缩包

定位 pom.xml 并执行构建

写入全新的独立pom.xml(无需父POM,直接构建War包)
cat > /root/zrlog-src/META-INF/maven/com.hibegin/package/pom.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 手动定义项目基本信息(替代父POM) -->
<groupId>com.hibegin</groupId>
<artifactId>zrlog-web</artifactId>
<version>3.3.0</version>
<packaging>war</packaging>
<name>ZrLog Web</name>
<description>ZrLog Blog System</description>
<!-- 核心依赖(覆盖父POM的关键依赖) -->
<dependencies>
<!-- Servlet & JSP 核心 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<!-- Java EE 基础 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0.1</version>
<scope>provided</scope>
</dependency>
<!-- 数据库驱动(ZrLog核心依赖) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<!-- 日志依赖 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.13</version>
</dependency>
</dependencies>
<!-- 构建配置(确保能打出可运行的War包) -->
<build>
<finalName>zrlog</finalName>
<plugins>
<!-- 编译插件(适配JDK11) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- War包插件(忽略缺失web.xml) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<!-- 指向ZrLog的源码/资源目录(关键) -->
<webResources>
<resource>
<directory>/root/zrlog-src</directory>
<includes>
<include>WEB-INF/**/*</include>
<include>META-INF/**/*</include>
<include>**/*.jsp</include>
<include>**/*.html</include>
<include>**/*.css</include>
<include>**/*.js</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
</project>
EOF
执行Maven打包(-DskipTests跳过测试,加快构建速度)

控制台输出 BUILD SUCCESS,并在 target/ 目录下生成 zrlog-3.3.0.war(文件名含版本号)


3.2安装数据库 / 反向代理 / 应用容器
**1.**基础工具依赖
dnf install -y wget unzip tar vim net-tools

2. MariaDB 数据库部署
dnf install -y mariadb-server mariadb
systemctl start mariadb && systemctl enable mariadb
创建ZrLog专用库和用户

3. Nginx 反向代理部署
dnf install -y nginx
写入优化配置

启动并开机自启
systemctl start nginx && systemctl enable nginx
验证配置有无报错

四.部署 War 包到 Tomcat
4.1配置Tomcat内存参数

4.2复制 War 包并清理旧数据
回到Maven构建目录
cd /root/zrlog-src/META-INF/maven/com.hibegin/package/
复制War包到Tomcat webapps目录,重命名为ROOT.war(直接访问根路径)
cp target/zrlog.war /root/tomcat10/webapps/ROOT.war
清理Tomcat旧解压文件(避免冲突)
rm -rf /root/tomcat10/webapps/ROOT

4.3启动 Tomcat 并验证

五.验证
在浏览器中进行验证(输入主机ip)

