模式1
goroot:go的安装路径
gopath:允许多个目录,windows是用分号;gopath下面有三个目录,分别是bin,pkg和src
bin | 编译后生成的可执行文件 |
pkg | 编译时生成的中间文件(比如:.a) mod:具体的包 |
src | 源码文件 |
go_project // go_project为GOPATH目录
-- bin
-- myApp1 // 编译生成
-- myApp2 // 编译生成
-- myApp3 // 编译生成
-- pkg
-- src
-- myApp1 // project1
-- models
-- controllers
-- others
-- main.go
-- myApp2 // project2
-- models
-- controllers
-- others
-- main.go
-- myApp3 // project3
-- models
-- controllers
-- others
-- main.go
模式二
go env -w GO111MODULE=on
go mod init:初始化
go mod tidy: 拉包
go mod vendor:导出项目所有依赖到vendor下
go mod graph:打印项目模块依赖结构
go mod init
:初始化一个新的Go模块,用于开始新的项目。可以在初始化时指定模块名称和版本号。go mod tidy
:整理并删除项目中未使用的依赖项。如果你在项目中添加或删除了依赖项,可以使用该命令更新依赖项列表。go mod vendor
:将依赖项复制到项目的vendor目录中,以便离线构建。go mod download
:下载依赖项,但不会安装它们。这个命令可以用于预先下载依赖项,以便之后进行离线构建。go mod verify
:验证依赖项的完整性和正确性。如果依赖项已经下载但是被修改或损坏了,那么就会发出警告。go mod graph
:以依赖项图的形式打印模块依赖关系。go mod why
:解释为什么需要依赖项。
例如,如果你想在你的项目中使用gin框架,可以使用以下命令将其添加为依赖项
go get -u github.com/gin-gonic/gin
该命令会将gin框架下载到你的$GOPATH/pkg/mod目录中,并将其添加到go.mod文件中。
go.sum 文件列出依赖包的源码的 SHA-256 哈希值,主要用于验证从 GOPROXY 镜像站点上下载下来的代码有没有被做篡改,保证安全。
所以 GOSUMDB 没有镜像站点,鉴于国内网络只能关闭该检查功能,即 GOSUMDB="off
GOPROXY=https://mirrors.aliyun.com/goproxy,https://goproxy.io,https://goproxy.cn,direct