go mod是Go官?引?的?个依赖管理?具.
(1). 设置环境变量引入go module:
$ set GO111MODULE=on
$ go mod init topic.com.cn(模块名)
(2). 文件目录:
topic.com
└─topic
├─core # 本地包在项目中
│ └─tools.go
├─main.go
└─go.mod
(3). topic.com/topic/main.go:
package main
import (
"topic.com.cn/core" # 这个并不是目录名字topic.com,而是上面设置的模块名
)
func main() {
core.ShowName()
}
(4). topic.com/topic/go.mod:
module topic.com
go 1.12
(5). topic.com/topic/core/tools.go:
package core
import "fmt"
func ShowName() {
fmt.Println("david")
}
(1). 文件目录:
topic.com
├─topic
│ ├─main.go
│ └─go.mod
└─core
├─tools.go
└─go.mod
(2). topic.com/topic/main.go:
package main
import (
"core"
)
func main() {
core.ShowName()
}
(4). topic.com/topic/go.mod:
module topic.com
require core v0.0.0 # 包名 版本
replace core v0.0.0 => ../core # 包的引用
go 1.12
(5). topic.com/core/tools.go:
package core
import "fmt"
func ShowName() {
fmt.Println("david")
}
(6). topic.com/core/go.mod:
module core
go 1.12
(1). 在topic.com/topic目录下执行:
$ go get github.com/go-sql-driver/mysql@master
go: finding github.com/go-sql-driver/mysql master
go: downloading github.com/go-sql-driver/mysql v1.4.1-0.20191022112324-6ea7374bc1b0
go: extracting github.com/go-sql-driver/mysql v1.4.1-0.20191022112324-6ea7374bc1b0
注:
如果需要指定版本则mysql@v1.4.1
(2). topic.com/topic/go.mod:
module topic.com.cn
require (
core v0.0.0
// 新引入的第三方包
github.com/go-sql-driver/mysql v1.4.1-0.20191022112324-6ea7374bc1b0 // indirect
)
replace core v0.0.0 => ../core
go 1.12
(3). 下载的文件位置:
$GOPATH\pkg\mod\github.com\go-sql-driver\mysql@v1.4.1-0.20191022112324-6ea7374bc1b0