一、工程管理工具
在实际的开发工做中,直接调用编译器进行编译和连接的场景是少而又少,由于在工程中不会简单到只有一个源代码文件,且源文件之间会有相互的依赖关系。若是这样一个文件一个文件逐步编译,那不亚于一场灾难。 Go语言的设计者做为行业老将,天然不会忽略这一点。早期Go语言使用makefile做为临时方案,到了Go 1发布时引入了强大无比的Go命令行工具。ui
Go命令行工具的革命性之处在于完全消除了工程文件的概念,彻底用目录结构和包名来推导工程结构和构建顺序。针对只有一个源文件的状况讨论工程管理看起来会比较多余,由于这能够直接用go run和go build搞定。下面咱们将用一个更接近现实的虚拟项目来展现Go语言的基本工程管理方法。命令行
二、工做区介绍设计
Go代码必须放在工做区中。工做区其实就是一个对应于特定工程的目录,它应包含3个子目录:src目录、pkg目录和bin目录。开发
目录src用于包含全部的源代码,是Go命令行工具一个强制的规则,而pkg和bin则无需手动建立,若是必要Go命令行工具在构建过程当中会自动建立这些目录。编译器
须要特别注意的是,只有当环境变量GOPATH中只包含一个工做区的目录路径时,go install命令才会把命令源码安装到当前工做区的bin目录下。若环境变量GOPATH中包含多个工做区的目录路径,像这样执行go install命令就会失效,此时必须设置环境变量GOBIN。源码