发布于2026-07-06 阅读(0)
扫一扫,手机访问
### 注意事项
- 确保 `GOCACHE` 已启用(Go 1.10+ 默认开启;可通过 `go env GOCACHE` 验证)。
- cgo 构建的缓存同样受环境变量影响:`CGO_ENABLED`、`CC`、`CFLAGS` 等任一变化都会使缓存失效——CI 中建议固定这些变量。
- `./...` 会递归匹配所有子目录中的 `main` 包;如果需要精确控制,可以用显式路径列表:`go install cmd/app1 cmd/app2 cmd/app3`。
- 在 CI 中,应该复用 `GOCACHE` 目录(例如 GitHub Actions 使用 `actions/cache` 缓存 `~/.cache/go-build`),否则每次构建都是冷缓存,加速效果就没了。
### 进阶提示
如果项目规模超大,还可以结合 git 检测变更进一步优化(非必需,但确实管用):
```bash
# 仅构建被 git 修改过的 main 包所在目录(需确保每个 cmd/xxx 是独立 main 包)
git status --porcelain | grep '^M.*\.go$' | sed 's|/[^/]*$||' | sort -u | xargs -r -I{} go install {}/...
```
**总结**:`go install ./...` 是 Go 官方推荐、零配置的增量构建方案。它天然支持 cgo 缓存、跨平台一致性以及 CI 友好性,完全不需要引入 Makefile、Bazel 或第三方构建工具,就能在保持简洁的同时,把“改一行代码→全量 rebuild”优化成“精准重建受影响的二进制”。实测下来,构建耗时能降低 60% 以上,尤其是 cgo 占比较高的项目,收益更明显。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8