Damnatiox
DOCUMENT / published

工程工具与 Linux:从零开始的阶段导学

工程工具与 Linux:从零开始的阶段导学 这一页是本阶段的入口,不假设读者已经接触过对应框架。先建立“为什么需要它、它在链路中的位置、如何验证”的心智模型,再进入各专题。 1. 本阶段解决什么问题 把“写出一段 Java 代码”升级为“任何团队成员都能以相同方式构建、测试、运行和发布”。这一阶段关注可重复性:JDK 版本、依赖、命令、目录、提交记录与运行环境都应被明确描述,而不是隐藏在某台电脑的 IDE 设置里。 前置知识 会编译和运

工程基础与Internet-Linux 2026/8/244 分钟阅读
# Java# Java 后端# 工程基础与Internet-Linux

工程工具与 Linux:从零开始的阶段导学

这一页是本阶段的入口,不假设读者已经接触过对应框架。先建立“为什么需要它、它在链路中的位置、如何验证”的心智模型,再进入各专题。

1. 本阶段解决什么问题

把“写出一段 Java 代码”升级为“任何团队成员都能以相同方式构建、测试、运行和发布”。这一阶段关注可重复性:JDK 版本、依赖、命令、目录、提交记录与运行环境都应被明确描述,而不是隐藏在某台电脑的 IDE 设置里。

前置知识

  • 会编译和运行简单 Java 类
  • 理解文件、目录、进程和环境变量的基本含义

2. 零基础词汇与心智模型

1. 构建

构建是把源代码、资源和依赖变成可运行产物的可重复过程,通常包含编译、测试、静态检查、打包和校验。Maven/Gradle 是构建系统,IDE 是使用这些系统的客户端之一。

学会的证据: 关闭 IDE 后仍能用 Wrapper 命令完成 clean build。

2. 依赖与仓库

依赖坐标确定一个不可变组件;仓库保存组件及其元数据。直接复制 jar 会丢失传递依赖、校验和与版本治理信息。

学会的证据: 能解释依赖树、scope/configuration 与版本冲突来源。

3. 版本控制

Git 保存内容快照与提交图。分支是指向提交的可移动引用,merge 与 rebase 改变历史图的方式不同。

学会的证据: 能从冲突中辨认双方意图并运行测试后提交。

4. 进程与权限

Linux 进程拥有 PID、用户、文件描述符、环境和资源限制;权限由 owner/group/other 与读写执行位共同决定。

学会的证据: 能定位监听端口、查看日志并以最小权限启动服务。

3. 建议学习顺序

  1. 用 Maven Wrapper 建立项目,固定 JDK release、编码、依赖和测试插件。
  2. 学习 Git 工作区、暂存区、提交、分支、冲突与可审查的小提交。
  3. 在 Linux 终端练习文件、管道、退出码、进程、端口、权限和日志。
  4. 最后用容器封装运行时,但仍需理解容器中的进程、信号和文件系统。

4. 完整链路

flowchart LR A["源代码与构建描述"] --> B["Wrapper 解析依赖"] B --> C["编译与自动化测试"] C --> D["可追踪制品"] D --> E["Linux 进程或容器"] E --> F["日志、指标与退出码验证"]

5. 最小代码切片

Shell
./mvnw clean verify java -jar target/app.jar curl --fail http://localhost:8080/actuator/health

6. 第一个可验证练习

创建只有一个 HTTP 接口的最小项目;执行 ./mvnw clean verify,运行 jar,用 curl 验证接口,再用 git log --oneline --graph 检查提交。故意改坏一个测试,确认构建以非零退出码停止。

7. 初学者容易混淆的边界

  • “IDE 能运行”不代表命令行、CI 和生产环境能重现。
  • 容器不是虚拟机;容器主进程退出,容器生命周期也结束。
  • Git rebase 会重写提交身份;协作分支是否重写要遵循团队约定。

8. 阶段验收

  • 能解释完整构建生命周期
  • 能排查 JDK 与依赖版本漂移
  • 能用 Linux 工具定位端口、进程和权限问题

参考资料