帶git的項目git
go mod init
go mod init packagename
go mod download
go mod tidy
go mod vendor
功能介紹一
使用replace本地包替換:
基於國內萬能的防火牆,就可能會用到這個功能github
main.gogolang
main.go package main import "packagepath/pkg" func main() { pkg.Hello() }
go modnpm
module go-mod require packagepath/pkg v0.0.0 replace packagepath/pkg => ./pkg
replace 能夠文件夾,也能夠是另一個package緩存
module go-mod require packagepath/pkg v0.0.0 replace packagepath/pkg v0.0.0 => github.com/packagepath/pkg v0.0.0
ps:頂層依賴可替換但間接依賴不可替換maven
功能介紹二 semver—Semantic Versioning
semver 是 語義化版本(Semantic Versioning)規範 的一個實現,目前是由 npm 的團隊維護,實現了版本和版本範圍的解析、計算、比較。ide
main.goui
package main import ( "fmt" v1 "github.com/e421083458/gomodtest_base" v2 "github.com/e421083458/gomodtest_base/v2" ) func main(){ v2.NewIntCollection("hello","sex") v1.NewIntCollection("hello") fmt.Println("hello"); }
go.mod命令行
module module_test require ( github.com/e421083458/gomodtest_base v1.0.1 github.com/e421083458/gomodtest_base/v2 v2.0.0 )