Go mod 是 go1.11
後釋出的管理套件的工具且 go1.13
成為default
使用。
go1.11 前專案使用 GOPATH
當時若需引用其他專需將 GOPATH
指定到所撰寫的專案底下
go env -w GOPATH=$(pwd)
## 錯誤處理,若發生下方這樣
## warning: go env -w GOPATH=... does not override conflicting OS environment variable
## .zshrc / .bashrc 請手動新增
## export GOPATH=$HOME/<當時的專案>
## export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
資料結構為
$(pwd)
|- main.go # go 入口
|- src/
|- trytry/ # package trytry
|- trytry.go
go1.11 後專案使用 go mod
官方手把手教學 - https://golang.org/doc/code#Command
以 NodeJS 來舉例,go mod 有點像是 package.json
# github: go mod init github.com/youruser/yourrepo
go mod init github.com/hifounder/learnforgo
注意:
預設 go mod 會抓proxy.golang.org
最新資料,若使用到 private repo 就要另外設定GOPRIVATE
,且記得 git 需登入有權限之帳號go env -w GOPRIVATE=github.com/*****
git config --global url."https://$USERNAME:[email protected]".insteadOf "https://github.com"
資料結構為
$(pwd)
|- main.go # go 入口
|- go.mod # go mod
|- trytry/ # package trytry
|- trytry.go