go module本地包导入
本文目录
- go module本地包导入
- 启用go mod
- 主项目工作目录
- 本地module目录
- 发布和使用模块
 
 
golang 1.11之后加入了go mod来替代GOPATH
官方文档参考:https://golang.google.cn/doc/tutorial/call-module-code
启用go mod
-  开启 Go modules # 临时开启 Go modules 功能 export GO111MODULE=on # 永久开启 Go modules 功能 go env -w GO111MODULE=on# 设置 Go 的国内代理,方便下载第三方包 go env -w GOPROXY=https://goproxy.cn,direct
-  通过 go env go env  
主项目工作目录
-  创建一个工作目录 mkdir myapp
-  新建mod文件 cd myapp go mod init myapp
-  添加函数main.go package mainimport ("fmt" )func main(){fmt.Println("This is main") }    
-  运行 go run main.go  
本地module目录
-  切换目录,新建自己的包 cd .. mkdir mypkg go mod init mypkg  
-  包内新建hello.go文件 package mypkgimport "fmt"func SayHello()string{fmt.Println("hello,(print in mypkg)")return "success" }
发布和使用模块
当 main.go 尝试导入 mydemo.com/mypkg 模块时,Go 工具链会从本地的 ../mypkg 目录加载模块,而不是尝试从远程位置下载
-  指定包的本地路径 go mod edit -replace mydemo.com/mypkg=../mypkg  
-  在main.go添加自己的包 package mainimport ("fmt"my "mydemo.com/mypkg" )func main(){fmt.Println("This is main")flag :=my.SayHello();fmt.Println(flag) }   
-  更新和同步 go mod tidy  
-  查看 go mod,已经自动更新
  
-  运行 go run main.go  
-  整体目录结构 └── twogo├── myapp│ ├── go.mod│ └── main.go└── mypkg├── go.mod└── hello.go
-  整体流程 
 