同时构建多个包二进制文件
如果一个项目下有多个包,单独构建每个二进制文件可能会很乏味。本文探讨了如何一步构建所有二进制文件。
对多个二进制文件使用脚本
使用“cmd”文件夹作为多个包二进制文件的根目录的默认建议不是总是有效的。相反,请考虑使用一个脚本来迭代“cmd”目录中的包并单独构建每个包。
cd $GOPATH/someProject
for CMD in `ls cmd`; do
go build ./cmd/$CMD
done
此脚本将在“bin”目录中使用单独构建的二进制文件创建上述目录结构.
替代解决方案
对于更复杂的项目,您可能需要额外的功能或与构建系统集成。以下是一些流行的选项:
-
Makefile: Makefile 提供了一种灵活的方式来定义构建规则和依赖项。 [Grafana 的 build.go](https://github.com/grafana/grafana/blob/master/build.go) 是用于构建多个二进制文件的 Makefile 的绝佳示例。
-
Go build 的构建标签: 构建标签允许您编译特定的子目录。 [Torus 的 Makefile](https://github.com/coreos/torus/blob/master/Makefile) 演示了如何使用构建标签构建多个二进制文件。
-
自定义构建脚本:您可以创建处理构建和打包过程的自定义脚本。 [Caddy 的automate.go](https://github.com/mholt/caddy/blob/master/dist/automate.go) 是自定义构建脚本的示例。
以上是如何在 Go 项目中同时构建多个包二进制文件?的详细内容。更多信息请关注PHP中文网其他相关文章!