GO包管理 2022-05-30 2022-06-24 457 words
One minute
症状 包与包之间方法无法调用 go get …的包无法引用 环境 1
2
3
4
5
6
7
8
-> % lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal
-> % go version
go version go1.18.1 linux/amd64
设置环境变量 IDE: vscode 单个项目不同包之间方法的访问 确定需被访问的函数、方法或结构体等的开头字母大写,这是Go的访问控制 在各包中初始化go.mod 生成go.mod文件如下
VSCode打开多个项目 1
go work init ./product1 ./product2
go.work如下
1
2
3
4
5
6
7
8
9
go 1.18
use (
. / product1
. / product2
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-> % tree
.
├── go.work
├── product1
│ ├── go.mod
│ ├── go.sum
│ ├── main.go
│ └── mytest.go
└── product2
├── go.mod
├── go.sum
├── channel.go
├── const.go
...
同包 1
2
3
-> % go run main.go
# command-line-arguments
./main.go:110:2: undefined: TestSet
get新包,vscode引入 1
go get gopkg.in/fatih/set.v0
1
import "gopkg.in/fatih/set.v0"
1
2
3
-> % go run .
mytest.go:9:2: no required module provides package gopkg.in/fatih/set.v0; to add it:
go get gopkg.in/fatih/set.v0
1
2
3
-> % go mod tidy
go: finding module for package gopkg.in/fatih/set.v0
go: found gopkg.in/fatih/set.v0 in gopkg.in/fatih/set.v0 v0.2.1