标签:expected dep 开源代码 Go语言 red 网站 vendor family rap
要构建Go语言的编译环境,首先得安装Go语言的编译工具
官方路径:https://golang.google.cn/dl/,一般是访问不了,使用国内网站:https://studygolang.com/dl
然后需要设置环境变量
在windows下需要将go编译器的安装路径加到Path,还要设置GOROOT和GOPATH变量,分别对应GO安装目录和项目下的src目录。
GO包管理一般有两种方式:GOPATH方式和GO Module方式
GOPATH方式是GO原生支持的方式,一般要求项目下包含三个目录:
bin:放置可执行文件
pkg:放置编译生成的lib包
src:放置源码,go编译查找源文件目录
例如项目结构如下:

一般源文件的包名就是所在的文件夹名,如果在main函数中要调用algorithms中的qsort中的函数,只需要import文件即可:

如果需要导入github上的开源代码,直接import项目的url链接即可,并且需要go get导入到本地路径,go会自动在src目录下生成github.com目录。
Go Module管理方式
Go Module方式是golang1.11新增的特性,直接基于模块管理,而不是基于固定目录
要使用Go Module,需要先设置go变量GO111MODULE=on
要注意Go Module方式跟GOPATH方式不兼容,项目路径不能再GOPATH里。

在项目中不需要src目录,使用go mod init建立mod管理,会自动在项目下生成go.mod文件,如果需要依赖第三方代码,除了在项目中import之外,还需要使用go mod download下载包
go.mod文件示例:

go mod常用命令:
| 命令 | 说明 | 
| download | download modules to local cache(下载依赖包) | 
| edit | edit go.mod from tools or scripts(编辑go.mod | 
| graph | print module requirement graph (打印模块依赖图) | 
| init | initialize new module in current directory(在当前目录初始化mod) | 
| tidy | add missing and remove unused modules(拉取缺少的模块,移除不用的模块) | 
| vendor | make vendored copy of dependencies(将依赖复制到vendor下) | 
| verify | verify dependencies have expected content (验证依赖是否正确) | 
| why | explain why packages or modules are needed(解释为什么需要依赖) | 
标签:expected dep 开源代码 Go语言 red 网站 vendor family rap
原文地址:https://www.cnblogs.com/lxx-coder/p/12996823.html