Go學習筆記(五)Go命令工具

上篇Go學習筆記(四)Go自動化測試框架

一、go buildhtml

這個命令能夠直接使用,也能夠帶上代碼包或源碼文件使用。shell

  若是是直接使用,表示試圖編譯當前目錄所對應的代碼包,若是當前目錄不是一個有效的代碼包(包含在 $GOPATH/src 目錄下)則會報錯;若是帶上代碼包名,則表示編譯指定的代碼包;若是帶上源碼文件,則表示編譯指定源碼文件。json

  GO語言的源碼文件分爲三類,包括命令源碼文件、庫源碼 文件和測試源碼文件。若是編譯的是命令源碼文件,或包含命令源碼文件的包(main包)時,編譯經過後會生成可執行文件;反之則不會生成任何文件,只是作檢查性編譯。windows

  能夠在執行 go build 命令時,加上一些標記,如:服務器

  -v 標記,能夠把命令執行過程當中構建的包名(包含編譯過程當中依賴的包)打印出來,若是 go build 的是一個源碼文件,則會打印出的包名爲 command-line-arguments,這是編譯源碼文件時生成的虛擬包名,因此看到不用以爲奇怪。框架

  -x 標記,能夠打印編譯期間所用到的全部 shell 命令。函數

  -o 標記,用來指定生成文件的路徑和名稱。工具

  -a 標記,強制從新編譯。post

  -buildmode=shared 標記,這個參數能夠指定當前編譯生成的結果類型,如靜態庫和動態庫。GO語言默認使用靜態編譯,好處是部署時很是簡單,但使用動態庫,能夠減小分發包的大小,你們能夠根據實際狀況選擇。注意,目前在windows下尚不支持編譯成動態庫。性能

  更多參數,請使用 go build -h 或 go help build 查看。

 

這個命令能夠直接使用,也能夠帶上代碼包或源碼文件使用。

  若是是直接使用,表示試圖編譯當前目錄所對應的代碼包,若是當前目錄不是一個有效的代碼包(包含在 $GOPATH/src 目錄下)則會報錯;若是帶上代碼包名,則表示編譯指定的代碼包;若是帶上源碼文件,則表示編譯指定源碼文件。

  GO語言的源碼文件分爲三類,包括命令源碼文件、庫源碼 文件和測試源碼文件。若是編譯的是命令源碼文件,或包含命令源碼文件的包(main包)時,編譯經過後會生成可執行文件;反之則不會生成任何文件,只是作檢查性編譯。

  能夠在執行 go build 命令時,加上一些標記,如:

  -v 標記,能夠把命令執行過程當中構建的包名(包含編譯過程當中依賴的包)打印出來,若是 go build 的是一個源碼文件,則會打印出的包名爲 command-line-arguments,這是編譯源碼文件時生成的虛擬包名,因此看到不用以爲奇怪。

  -x 標記,能夠打印編譯期間所用到的全部 shell 命令。

  -o 標記,用來指定生成文件的路徑和名稱。

  -a 標記,強制從新編譯。

  -buildmode=shared 標記,這個參數能夠指定當前編譯生成的結果類型,如靜態庫和動態庫。GO語言默認使用靜態編譯,好處是部署時很是簡單,但使用動態庫,能夠減小分發包的大小,你們能夠根據實際狀況選擇。注意,目前在windows下尚不支持編譯成動態庫。

  更多參數,請使用 go build -h 或 go help build 查看。

這個命令能夠直接使用,也能夠帶上代碼包或源碼文件使用。

  若是是直接使用,表示試圖編譯當前目錄所對應的代碼包,若是當前目錄不是一個有效的代碼包(包含在 $GOPATH/src 目錄下)則會報錯;若是帶上代碼包名,則表示編譯指定的代碼包;若是帶上源碼文件,則表示編譯指定源碼文件。

  GO語言的源碼文件分爲三類,包括命令源碼文件、庫源碼 文件和測試源碼文件。若是編譯的是命令源碼文件,或包含命令源碼文件的包(main包)時,編譯經過後會生成可執行文件;反之則不會生成任何文件,只是作檢查性編譯。

  能夠在執行 go build 命令時,加上一些標記,如:

  -v 標記,能夠把命令執行過程當中構建的包名(包含編譯過程當中依賴的包)打印出來,若是 go build 的是一個源碼文件,則會打印出的包名爲 command-line-arguments,這是編譯源碼文件時生成的虛擬包名,因此看到不用以爲奇怪。

  -x 標記,能夠打印編譯期間所用到的全部 shell 命令。

  -o 標記,用來指定生成文件的路徑和名稱。

  -a 標記,強制從新編譯。

  -buildmode=shared 標記,這個參數能夠指定當前編譯生成的結果類型,如靜態庫和動態庫。GO語言默認使用靜態編譯,好處是部署時很是簡單,但使用動態庫,能夠減小分發包的大小,你們能夠根據實際狀況選擇。注意,目前在windows下尚不支持編譯成動態庫。

  更多參數,請使用 go build -h 或 go help build 查看。

這個命令用於編譯安裝,能夠做用於 main 包和非 main 包,而後將編譯後的生成的執行文件存放到工程的 bin 目錄下,將生成的歸檔文件(即靜態連接庫)存放到工程的 pkg 目錄下。使用方式相似於 go build,能夠在某個代碼包目錄下直接使用,也能夠指定代碼包使用。

二、go clean

該命令能夠刪除執行其它命令時產生的文件和目錄

三、go doc

文檔註釋相關,能夠搭建本地GO文檔服務器,包含本身的項目註釋

四、go env

用於打印GO語言的環境信息,如 GOPATH 是工做區目錄,GOROOT 是GO語言安裝目錄,GOBIN 是經過 go install 命令生成可執行文件的存放目錄(默認是當前工做區的 bin 目錄下),GOEXE 爲生成可執行文件的後綴

五、go bug

用於GO語言調試

六、go fix

簡單的說,這是一個當GO語言版本升級以後,把代碼包中舊的語法更新成新版本語法的自動化工具。它是 go tool fix 的簡單封裝,它做用於代碼包。當須要升級本身的項目或者升級下載的第三方代碼包,可使用此方法。(下載並升級代碼包可使用 go get -fix 命令 )

七、go fmt

做用於代碼包,用於格式化代碼包中的代碼格式,注意不包含代碼包中的子代碼包。是 gofmt 的簡單封裝,至關於 gofmt -l -w ,更多信息,請經過 gofmt -h 查看。

八、go generate

經過掃描Go源碼中的特殊註釋來識別要運行的常規命令。瞭解go generate不是go build的一部分很重要。它不包含依賴關係分析,必須在運行go build以前顯式運行。它旨在由Go package的做者使用,而不是其客戶端。

九、go get

下載第三方代碼包並編譯安裝 ,須要注意的是,它會下載安裝到 GOPATH 環境變量配置的第一個工做區中。

十、go install

這個命令用於編譯安裝,能夠做用於 main 包和非 main 包,而後將編譯後的生成的執行文件存放到工程的 bin 目錄下,將生成的歸檔文件(即靜態連接庫)存放到工程的 pkg 目錄下。使用方式相似於 go build,能夠在某個代碼包目錄下直接使用,也能夠指定代碼包使用。

十一、go list

 

不加任何標記直接使用,是顯示指定包的導入路徑,如 go list net/http 就顯示 net/http。

  該命令加上 -json 標記能夠顯示完整信息

十二、go run

編譯並執行,只能做用於命令源碼文件,通常用於開發中快速測試。

1三、go test

進行單元測試的工具,單元測試代碼建議與被測試代碼放在同一個代碼包中,並以 "_test.go" 爲後期,測試函數建議以 "Test" 爲名稱前綴。該命令能夠對代碼包進行測試,也能夠指定某個測試代碼文件運行(要一併帶上被測試代碼文件)

1四、go tool

go工具,go tool pprof性能檢查工具,   go tool cgo跟C語言和GO語言有關的命令

1五、go version

打印go版本

1六、go vet

靜態檢查工具,通常項目快完成時進行進行優化時須要

相關文章
相關標籤/搜索