一、go环境搭建
//进入下载目录 cd /home/dont/Download //下载go语言包 wget https://dl.google.com/go/go1.14.3.linux-amd64.tar.gz //解压至root权限下usr/locat目录下 sudo tar xfz go1.14.3.linux-amd64.tar.gz -C /usr/local //配置全局变量 sudo vi /etc/profile export GOROOT=/usr/local/go //设置为你自己的go安装目录 export GOPATH=/home/liyuan02/go // 设置为自己的go项目的工作区间 ----- 使用go mod一般为空,安装godoc时需要设置一个路径 export PATH=$GOROOT/bin:$PATH //原路径后用冒号连接新路径 //使配置立即生效 source /etc/profile //验证成功 go version go version go1.13.11 linux/amd64
二、使用GO Modules工具进行项目开发
1.目录设置
C:\Go <<--- GOROOT 指向的位置 --src <<--- Go 语言自带的源代码 --pkg <<--- 编译的中间文件放在此文件夹 --bin <<--- 编译的目标文件放在此文件夹 D:\MyWorks <<--- GOPATH 指向的位置 --src <<--- 项目源代码放置在此文件夹。!!!警告:一个常犯的错误是把 GOPATH 指向此处!!! --HelloWorld <<--- 我们项目源代码所在的文件夹。!!!警告:一个常犯的错误是把 GOPATH 指向此处!!! --vendor <<--- 第三方开源代码文件夹 --github.com --... --pkg <<--- 编译的中间文件放在此文件夹,Go编译器自动生成此文件夹 --bin <<--- 编译的目标文件放在此文件夹,Go编译器自动生成此文件夹
2.GO Modules配置
//设置变量参数 go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct //查看变量设置情况 go env GO111MODULE="on" GOPROXY="https://goproxy.cn,direct"
3.GO Modules操作命令
//go mod操作命令 go get -u //更新现有的依赖 go mod tidy //整理模块(拉取缺少的模块,移除不用的模块) go mod download//下载依赖包 go mod graph //打印现有依赖结构 go mod vendor //将依赖复制到vendor下 go mod verify //校验依赖
三、使用GO Modeles开发一个项目
1.目录结构
//创建一个Go的项目目录 sdsec_go //项目目录名称 |---test //项目内的子目录 |---hello_word.go //Go文件 // 使用Go Modules后,项目目录 sdsec_go // 项目目录名称 |---test //项目内的子目录 |---hello_word.go //Go文件 |---vendor // Go扩展包的存放目录 |---github.com // Go扩展包的下载来源 --- 来自github.com网站 |---golang.org // Go扩展包的下载来源 --- 来自golang.org网站 |---x |---sys // Go扩展包 --- sys扩展包 |---go.mod // Go Module,自动生成。在go.mod中被require的Go的扩展包,才会被自动下载到vendor目录中。 |---go.sum // Go Module,自动生成。 // 执行命令的顺序 1、先进入项目目录。 2、执行go mod init xxx("xxx"自已定义,可以是项目名称,或是其它文字)。会自动生成go.mod文件。 3、对某个Go文件,进行go build。例如:go build test/hello_word.go(会将hello_word.go中import引入进来的扩展包的信息,自动写入go.mod)。
package main import "fmt" func main(){ fmt.Println("hello,world") }
2.执行操作
//mod初始化 ----- 自动生成go.mod和go.sum文件。这两个文件中的内容,都是自动生成,不需要手工修改。 go mod init 项目目录 //整理模块(拉取缺少的模块,移除不用的模块) ----- 自动修改go.mod和go.sum文件中的内容。 go mod tidy //将依赖复制到vendor目录下 ----- 自动创建vendor目录,并根据go.mod中Require的依赖列表,将依赖的组件包,复制到与go.mod同级的vendor目录中。 go mod vendor //创建deploy目录用于存储生成的可执行文件 go build -o ./deploy/hell_word ./test/hello_world.go //执行 ./hello_world