跳到内容

你的进度

你还在工坊的工具墙前。终端、Git、调试器各归其位。但你很快发现:一个现代项目几乎不从头造轮子。你想用别人写好的日志库、JSON 解析器、测试框架——可它们在哪?怎么拿到?怎么用到自己的项目里?


场景:你需要一个 JSON 库

你要解析一段 JSON 字符串。你的第一反应——自己写?

java
// 别这么干——自己写 JSON 解析器是浪费
public class MyJsonParser {
    // 至少五百行代码,测试另算
}

你当然不打算自己写。你知道有个叫 Jackson 的库专门干这个。但怎么拿到它?手动下载 jar 包?等你有几十个 jar 包,日子就难过起来了。

更别说这锅有多沉:JSON 解析器要考虑边界 case、优化性能、维护兼容性。这不是你一个下午能写完的东西。开源社区已经写好了,你只需要把它请进门。


包管理器 = 补给站管理员

包管理器就是你的"补给站管理员"。你告诉它"我要 Jackson",它帮你:

  1. 从远程仓库下载正确版本
  2. 把所有依赖的依赖(传递依赖)一并下载
  3. 放在你的项目可以找到的地方
  4. 你想升级——一句话的事

每种编程语言都有自己的包管理器。名字不同,干的活一样。


三语言速览

bash
# Python
pip install requests
import requests  # 直接导入

# Node.js
npm install lodash
const _ = require('lodash');

# Java(Maven)
# 在 pom.xml 声明依赖,然后 mvn compile
java
// Maven pom.xml 里声明
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.15.2</version>
</dependency>

// Java 代码直接用
import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(json, User.class);

看到区别了?pip 是一行命令,npm 是一行命令,Maven 是配置 XML 文件——但本质一样:声明你的依赖,工具搞定剩下的


一句话总结

生态命令仓库
Pythonpip install <包>PyPI
Node.jsnpm install <包>npmjs.org
Javapom.xml + mvn compileMaven Central
  1. 不要自己造轮子
  2. 包管理器帮你解决怎么拿、怎么升级
  3. 只管声明,剩下的交给工具

→ 下一章

装包只是第一步。下一站我们深入 Maven——学写 pom.xml,理解锁文件,以及什么该放进 .gitignore

第5章:Maven 基础

Built with VitePress | Software Systems Atlas