Uncategorized
/
Feb 08, 2026
Step 4 第四关:打包出厂 - 将美食装盒
<!-- Title: 第四关:打包出厂 - Maven 构建与 Docker 部署 -->
<!-- ID: 150 -->
<!-- Series: Java 帝国:从零构建你的数字疆域 (ID: 2) -->
<!-- Author: 潘卫 -->
# 第四关:打包出厂 - Maven 构建与 Docker 部署
## 1. 为什么要打包?
在 IDE (IntelliJ IDEA) 里运行代码,就像在自家的厨房里做菜,环境你都熟悉。
但我们要把菜送到客户手里(服务器),就需要**打包**。
在 Java 世界里,我们通常把项目打包成一个 **JAR (Java ARchive)** 文件。
这个 JAR 包就像一个**自热火锅**:里面包含了代码、依赖库、Tomcat 服务器。到了哪里,只要有热水(JDK),就能跑起来。
## 2. Maven 打包实战
Maven 是我们的流水线工人。
### 指令打包
在项目根目录下(有 `pom.xml` 的地方),打开终端运行:
```bash
mvn clean package -DskipTests
```
* `clean`: 清理旧的构建产物。
* `package`: 执行打包。
* `-DskipTests`: 跳过单元测试(赶时间的话)。
### 产物检查
执行成功后,查看 `target` 目录,你会发现一个 `.jar` 文件,例如 `demo-0.0.1-SNAPSHOT.jar`。
这就是你的**最终成品**。
### 本地试运行
离开 IDE,用命令行运行它,模拟服务器环境:
```bash
java -jar target/demo-0.0.1-SNAPSHOT.jar
```
如果看到 Spring 的 Logo 打印出来,说明打包成功!
## 3. 进阶:Docker 容器化部署
现在的后端开发,已经很少直接在服务器上装 JDK 跑 JAR 包了。
我们用 **Docker**。
Docker 就像**集装箱**。我们把 JAR 包和它需要的环境(JDK)一起封进集装箱里。
### 第一步:编写 Dockerfile
在项目根目录创建一个名为 `Dockerfile` 的文件:
```dockerfile
# 1. 基础镜像:找一个装好 JDK 17 的 Linux
FROM openjdk:17-jdk-alpine
# 2. 作者信息
LABEL maintainer="panwei"
# 3. 把我们的 JAR 包拷贝进去,重命名为 app.jar
COPY target/*.jar app.jar
# 4. 暴露端口
EXPOSE 8080
# 5. 启动命令
ENTRYPOINT ["java", "-jar", "/app.jar"]
```
### 第二步:构建镜像
```bash
docker build -t my-java-app:v1 .
```
### 第三步:运行容器
```bash
docker run -d -p 8080:8080 --name my-app my-java-app:v1
```
* `-d`: 后台运行。
* `-p 8080:8080`: 把容器里的 8080 端口映射到宿主机的 8080 端口。
现在,你的 Java 应用已经跑在 Docker 容器里了,稳如泰山!
## 4. 总结
从 **源码** -> **Maven 构建** -> **JAR 包** -> **Docker 镜像** -> **运行容器**。
这就是现代 Java 后端交付的标准流水线(CI/CD 的基础)。
掌握了这一步,你就不仅是一个写代码的程序员,更是一个能独立交付产品的工程师。
P
潘卫
南京市沉思波网络科技有限责任公司创始人、CEO
您的观点 (可选)
🎁 注册账号,同步您的个性化学习路径