go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。到今天Go1.14版本推出之后Go modules 功能已经被正式推荐在生产环境下使用了。
目前已经有很多教程讲解如何使用go module,以及如何使用go module导入gitlab私有仓库,我这里就不再啰嗦了。
最近我发现很多小伙伴在群里问如何使用go module导入本地包,毕竟初学者刚开始接触package概念的时候都是先在本地创建一个包,然后尝试本地调用一下,但是在go module模式下调用本地包就很容易被卡住了。
本文就详细介绍下如何使用go module导入本地包。
前提
假设我们现在有moduledemo和mypackage两个包,其中moduledemo包中会导入mypackage包并使用它的New方法。
mypackage/mypackage.go内容如下:
package mypackage
import "fmt"
func New(){
fmt.Println("mypackage.New")
}
我们现在分两种情况讨论:
在同一个项目下
注意:在一个项目(project)下我们是可以定义多个包(package)的。
目录结构
现在的情况是,我们在moduledemo/main.go中调用了mypackage这个包。
moduledemo
├── go.mod
├── main.go
└── mypackage
└── mypackage.go