一、工程管理工具
在實際的開發工做中,直接調用編譯器進行編譯和連接的場景是少而又少,由於在工程中不會簡單到只有一個源代碼文件,且源文件之間會有相互的依賴關係。若是這樣一個文件一個文件逐步編譯,那不亞於一場災難。 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。源碼