我们现在有文件目录结构如下:
├── p1 │ ├── go.mod │ └── main.go └── p2 ├── go.mod └── p2.go
p1/main.go
中想要导入p2.go
中定义的函数。
p2/go.mod
内容如下:
module liwenzhou.com/q1mi/p2 go 1.14
p1/main.go
中按如下方式导入
import ( "fmt" "liwenzhou.com/q1mi/p2" ) func main() { p2.New() fmt.Println("main") }
因为我并没有把liwenzhou.com/q1mi/p2
这个包上传到liwenzhou.com
这个网站,我们只是想导入本地的包,这个时候就需要用到replace
这个指令了。
p1/go.mod
内容如下:
module github.com/q1mi/p1 go 1.14 require "liwenzhou.com/q1mi/p2" v0.0.0 replace "liwenzhou.com/q1mi/p2" => "../p2"
此时,我们就可以正常编译p1
这个项目了。