Golang module - meetbill/chi GitHub Wiki

如何使用 go module 导入本地包

注意:在一个项目(project)下我们是可以定义多个包(package)的。

目录结构

现在的情况是,我们在 moduledemo/main.go 中调用了 mypackage 这个包。

moduledemo
├── go.mod
├── main.go
└── mypackage
    └── mypackage.go

导入包

这个时候,我们需要在moduledemo/go.mod中按如下定义:

module moduledemo

go 1.14

然后在moduledemo/main.go中按如下方式导入mypackage

package main

import (
	"fmt"
	"moduledemo/mypackage"  // 导入同一项目下的mypackage包
)
func main() {
	mypackage.New()
	fmt.Println("main")
}

举个例子

举一反三,假设我们现在有文件目录结构如下:

└── bubble
    ├── dao
    │   └── mysql.go
    ├── go.mod
    └── main.go

其中bubble/go.mod内容如下:

module github.com/q1mi/bubble

go 1.14

bubble/dao/mysql.go内容如下:

package dao

import "fmt"

func New(){
	fmt.Println("mypackage.New")
}

bubble/main.go内容如下:

package main

import (
	"fmt"
	"github.com/q1mi/bubble/dao"
)
func main() {
	dao.New()
	fmt.Println("main")
}

传送门

https://www.liwenzhou.com/posts/Go/import_local_package_in_go_module/