go入門——專案搭建
阿新 • • 發佈:2020-07-14
一、go環境搭建
//進入下載目錄 cd /home/dont/Download //下載go語言包 wget https://dl.google.com/go/go1.14.3.linux-amd64.tar.gz //解壓至root許可權下usr/locat目錄下 sudo tar xfz go1.14.3.linux-amd64.tar.gz -C /usr/local //配置全域性變數 sudo vi /etc/profile export GOROOT=/usr/local/go //設定為你自己的go安裝目錄 export GOPATH=/home/liyuan02/go // 設定為自己的go專案的工作區間 ----- 使用go mod一般為空,安裝godoc時需要設定一個路徑export PATH=$GOROOT/bin:$PATH //原路徑後用冒號連線新路徑 //使配置立即生效 source /etc/profile //驗證成功 go version go version go1.13.11 linux/amd64
二、使用GO Modules工具進行專案開發
1.目錄設定
C:\Go <<--- GOROOT 指向的位置 --src <<--- Go 語言自帶的原始碼 --pkg <<--- 編譯的中間檔案放在此資料夾 --bin <<--- 編譯的目標檔案放在此資料夾 D:\MyWorks<<--- GOPATH 指向的位置 --src <<--- 專案原始碼放置在此資料夾。!!!警告:一個常犯的錯誤是把 GOPATH 指向此處!!! --HelloWorld <<--- 我們專案原始碼所在的資料夾。!!!警告:一個常犯的錯誤是把 GOPATH 指向此處!!! --vendor <<--- 第三方開原始碼資料夾 --github.com --... --pkg <<--- 編譯的中間檔案放在此資料夾,Go編譯器自動生成此資料夾--bin <<--- 編譯的目標檔案放在此資料夾,Go編譯器自動生成此資料夾
2.GO Modules配置
//設定變數引數 go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct //檢視變數設定情況 go env GO111MODULE="on" GOPROXY="https://goproxy.cn,direct"
3.GO Modules操作命令
//go mod操作命令 go get -u //更新現有的依賴 go mod tidy //整理模組(拉取缺少的模組,移除不用的模組) go mod download//下載依賴包 go mod graph //列印現有依賴結構 go mod vendor //將依賴複製到vendor下 go mod verify //校驗依賴
三、使用GO Modeles開發一個專案
1.目錄結構
//建立一個Go的專案目錄 sdsec_go //專案目錄名稱 |---test //專案內的子目錄 |---hello_word.go //Go檔案 // 使用Go Modules後,專案目錄 sdsec_go // 專案目錄名稱 |---test //專案內的子目錄 |---hello_word.go //Go檔案 |---vendor // Go擴充套件包的存放目錄 |---github.com // Go擴充套件包的下載來源 --- 來自github.com網站 |---golang.org // Go擴充套件包的下載來源 --- 來自golang.org網站 |---x |---sys // Go擴充套件包 --- sys擴充套件包 |---go.mod // Go Module,自動生成。在go.mod中被require的Go的擴充套件包,才會被自動下載到vendor目錄中。 |---go.sum // Go Module,自動生成。 // 執行命令的順序 1、先進入專案目錄。 2、執行go mod init xxx("xxx"自已定義,可以是專案名稱,或是其它文字)。會自動生成go.mod檔案。 3、對某個Go檔案,進行go build。例如:go build test/hello_word.go(會將hello_word.go中import引入進來的擴充套件包的資訊,自動寫入go.mod)。
package main import "fmt" func main(){ fmt.Println("hello,world") }
2.執行操作
//mod初始化 ----- 自動生成go.mod和go.sum檔案。這兩個檔案中的內容,都是自動生成,不需要手工修改。 go mod init 專案目錄 //整理模組(拉取缺少的模組,移除不用的模組) ----- 自動修改go.mod和go.sum檔案中的內容。 go mod tidy //將依賴複製到vendor目錄下 ----- 自動建立vendor目錄,並根據go.mod中Require的依賴列表,將依賴的元件包,複製到與go.mod同級的vendor目錄中。 go mod vendor //建立deploy目錄用於儲存生成的可執行檔案 go build -o ./deploy/hell_word ./test/hello_world.go //執行 ./hello_world