查看go的版本
go version
go从1.11版本开始支持module功能。
如果go的版本是1.11和1.12,项目位于$GOPATH/src里面的时候,module功能不会生效,即使你目录中有go.mod文件也无济于事。
如果go的版本是>=1.13,无论你的项目路径在哪里,只要项目中有go.mod文件,module功能就会生效。
设置环境变量
我的go语言版本是1.11.5,是支持module功能的,但是需要手动开启,方式是设置环境变量,即export GO111MODULE=on
,这个只在当前终端生效。
开发一个模块
- 假设我们开发的模块最终会上传到
https://gitee.com/xxfaxy/go-module-test
这个地址,我们记为A
。 - 在$GOPATH/src之外的其他位置创建一个目录go-module-test,目录里面创建一个文件main.go内容如下:
package dry
func Add(x int, y int) int {
return x + y;
}
- 在目录内执行
go mod init gitee.com/xxfaxy/go-module-test
,会生成一个文件go.mod
,相当于把A
里面的https://
删除了,记为B
。 - 上传代码到git仓库并设置为公开。
调用我们开发的模块
- 在$GOPATH/src之外的其他位置创建一个目录demo,目录里面创建一个文件main.go内容如下:
package main
import (
"fmt"
"gitee.com/xxfaxy/go-module-test"
)
func main() {
result := dry.Add(10, 90)
fmt.Println(result)
}
注意里面包的名字就是B
- 在项目目录执行
go mod init demo
- 执行
go run ./main.go
有疑问加站长微信联系(非本文作者)