5.4 依赖与构建工具速查
类型:参考页,不要求顺序阅读
适用范围:Python/pip、npm、Maven 与 Gradle;具体版本以项目 Wrapper 和 CI 为准
这页用于定位命令,不替代项目自己的 README 和 Wrapper。
生态对照
| 生态 | 清单 | lock/锁状态 | 项目级入口 | 依赖检查 |
|---|---|---|---|---|
| Python/pip | pyproject.toml、requirements 输入 | 由所选工具生成 | python -m pip | pip inspect、pip check |
| npm | package.json | package-lock.json | npm run、npm ci | npm ls、npm explain |
| Maven | pom.xml | 无默认完整 lock | ./mvnw | dependency:tree、help:effective-pom |
| Gradle | build.gradle(.kts) | 可选 gradle.lockfile | ./gradlew | dependencies、dependencyInsight |
Maven 与 Gradle
| 目标 | Maven | Gradle |
|---|---|---|
| 干净验证 | ./mvnw clean verify | ./gradlew clean check |
| 打包 | ./mvnw package | ./gradlew build |
| 依赖树 | ./mvnw dependency:tree | ./gradlew dependencies |
| 单项来源 | dependency:tree -Dincludes=GROUP:NAME | dependencyInsight --dependency NAME --configuration runtimeClasspath |
| 工具版本 | ./mvnw --version | ./gradlew --version |
Maven 生命周期是阶段序列;Gradle 构建是 task graph。Gradle 能并行或增量执行合适任务,Maven 也有并行构建选项。不能用“一个串行、一个并行”概括真实性能。
安装与重建
bash
# Python:先激活虚拟环境
python -m pip install -r requirements.txt
python -m pip check
# npm:lock 与清单必须匹配
npm ci
npm ls --all
# Maven / Gradle
./mvnw clean verify
./gradlew clean build按当前项目选择对应命令组,前提是清单、Wrapper 和所需工具已经存在,不要把四组当成连续脚本运行。npm ci 还会先删除已有的 node_modules,且默认会运行适用的生命周期脚本。
这些命令可能访问项目配置的仓库。Maven -o、Gradle --offline 和 npm --offline 会在本地制品或缓存缺项时失败。pip 离线安装需要准备本地 wheel/源码目录,例如 python -m pip install --no-index --find-links=./wheelhouse -r requirements.txt;--no-index 本身不会把缓存变成完整的软件源。
Git 建议
提交清单、lock/锁状态、Wrapper 和必要的共享配置。忽略 .venv/、node_modules/、target/、.gradle/、build/。IDE 目录按团队文件级规则处理。
官方核对入口
- npm
install与npm ci说明 lock、清单和自动化安装的不同约束。 - Python 依赖说明符 与
pylock.toml分别定义依赖表达式和标准锁文件格式。 - Maven 依赖机制 解释传递依赖、scope、BOM 与
dependencyManagement。 - Gradle 依赖锁定 说明锁状态何时生成、应如何提交。
→ 打开综合实验