Golang module配置和命令零碎總結


1.首先就是要配置GOPROXY,編輯/etc/environment文件,加上export GOPROXY=https://mirrors.aliyun.com/goproxy/和export GO111MODULE="on"

2.記得source /etc/environment,則在此控制台執行go env會發現這兩個參數變了(但是在其他控制台又不會,需要再次執行source /etc/environment;或者可以重啟一下)

3.在go.mod文件里通過require來添加依賴包(目前是通過git的形式添加依賴,latest會找最新的release的tag,如果沒有則用最新的commit)

分別有三種require方式:

require (
    github.com/casbin/casbin/v2 v2.0.2
    github.com/fastly/go-utils d95a45783239
    github.com/gin-gonic/gin latest
)

第一種則是用特定的版本,第二種是某次提交的版本,第三種則是由go module去找最新的release tag版本,如果沒有則用最新的commit版本;

在導入包的時候則不需要指定版本,因為在go.mod里已經指定了(go.mod其實類似pom.xml)

可以通過go build【還有個go install它可以針對庫或應用,但是生成的文件在$GOPATH下】來實現只import了但是沒有在go.mod里配置require的依賴的下載,將最新的release的tag版本下載下來(如果沒有release則是最新的commit),然后go會自動修改該項目的go.mod的require配置增加該依賴的配置;

同理,如果只是在require里配置了,也可以通過go build實現對require依賴的下載;

還可以直接通過go get -u github.com/gin-gonic/gin來實現下載最新的依賴(也是放在$GOPATH/pkg/mod里,因為開啟了mod模式),有時候這個還是很有用的,因為用了代理后有時候下載不了最新的版本,這個時候用go get -u也許就能下載最新版本;

-u 就是update的意思。

4.go mod的命令
download     download modules to local cache(下載依賴包)
edit     edit go.mod from tools or scripts(編輯go.mod
graph     print module requirement graph (打印模塊依賴圖)
init     initialize new module in current directory(在當前目錄初始化mod)
tidy     add missing and remove unused modules(拉取缺少的模塊,移除不用的模塊)
vendor     make vendored copy of dependencies(將依賴復制到vendor下)
verify     verify dependencies have expected content (驗證依賴是否正確)
why     explain why packages or modules are needed(解釋為什么需要依賴)

5.go mod init要求填寫mod的前綴,但實際上是不需要的,比如go mod init silentdoer.me/demo-01,但是其實在go.mod里module demo-01也是可以的而不是必須module silentdoer.me/demo-01(不過最好還是加上“groupId”吧)

可以在require 所有需要的第三方庫后,在項目根目錄下執行go mod vendor來將第三方庫復制到項目根目錄的vendor目錄里(類似js的node_modules目錄),注意,這里go mod vendor似乎沒軟用,如果需要離線使用第三方庫,需要將GOPATH里的內容打包到離線環境,vendor目錄沒幾把毛用(到了離線環境解壓GOPATH目錄的內容,然后配置GOPATH環境變量,然后用go env看是否成功);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM