yum install golang -y
配置gopath(可自行设置目录)cd /home/gopath
包安装
下载wget https://studygolang.com/dl/golang/go1.15.linux-amd64.tar.gz
解压sudo tar -C /usr/local -xzf go1.15.linux-amd64.tar.gz
设置环境变量
打开配置文件vim /etc/profile
添加以下内容export GOPATH=/home/gopath/
gopath是自己创建的工作路径,各种依赖包会自动下载到home/gopath/pkg下。
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
使设置生效source /etc/profile
go get 下载失败
启用Go Modules 功能
go env -w GO111MODULE=on
或者在配置文件添加export GO111MODULE=on
查看go环境变量中GO111MODULE选项go env
go module 设置
官方文档
简介go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用,默认是auto。
go module可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等。
go module可以舍弃 go get 命令(如果要指定包的版本或更新包可使用go get)。
go module可以不用将代码放置在GOPATH/src下了开启module
GO111MODULE | auto | on | off |
---|---|---|---|
1.13+:项目根目录有 go.mod | 启用 | 启用 | 不启用 |
因go的网络问题, 可以配置GOPROXY 国内代理地址,
go env -w GOPROXY=https://goproxy.io,direct
也可以换成阿里云go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/
百度 go env -w GOPROXY=https://goproxy.baidu.com
使用 goproxy.cn 设置详见 https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md
go module 基本使用
初始化MODULE(项目中还没有go.mod文件)
进入项目文件夹cd xxx/xxx/test/
初始化 MODULE(test为项目名)go mod init test
我们会发现在项目根目录会出现一个 go.mod 文件
注意,此时初始化的 go.mod 文件只标识了项目名和go的版本。 检测依赖
go mod tidy
检测该文件夹目录下所有引入的依赖,写入 go.mod 文件中,go.mod 文件有所变动,但是此时依赖还是没有下载的。下载依赖
go mod download
注意:下载不是使用 go get,如果没有设置 GOPROXY 为国内镜像,这步百分百会停住。
此时会将依赖全部下载至 GOPATH 下,会在根目录下生成 go.sum 文件, 该文件是依赖的详细依赖,
但是项目是没有放到 GOPATH 下的,那么下载到 GOPATH 下是无用的,照样找不到这些包,需要导入。导入依赖
go mod vendor
执行此命令,会将刚才下载至 GOPATH 下的依赖转移至该项目根目录下的 vendor(自动新建) 文件夹下
此时就可以使用这些依赖了依赖更新
go mod tidy
go mod download
go mod vendor
这里的更新不是指版本的更新,而是指引入新依赖
依赖更新请从检测依赖部分一直执行即可,即新增依赖
直接项目中 import 需要新加的包,之后更新依赖即可在协作中使用 GOMODULE
在项目管理中,如使用git,需要将 vendor 文件夹放入白名单,不然项目中带上包体积会很大
git设置白名单方式为在git托管的项目根目录新建 .gitignore 文件
设置忽略即可.但是 go.mod 和 go.sum 不要忽略
其他人clone项目后在本地进行依赖更新即可GOMODULE常用命令
go mod init
# 初始化go.modgo mod tidy
# 更新依赖文件go mod download
# 下载依赖文件go mod vendor
# 将依赖转移至本地的vendor文件go mod edit
# 手动修改依赖文件go mod graph
# 打印依赖图go mod verify
# 校验依赖
练习
新建main.go
新建views文件夹,在views中新建hello.html
main.go
package main
import "github.com/kataras/iris"
func main() {
app := iris.New()
app.RegisterView(iris.HTML("./views", ".html"))
app.Get("/", func(ctx iris.Context) {
ctx.ViewData("message", "Hello world!")
ctx.View("hello.html")
})
app.Run(iris.Addr(":8080"))
}
hello.html
Hello Page
{{.message}}
运行,在浏览器输入http://localhost:8080/,得到运行结果。
生成证书开启HTTPScd $GOROOT/src/crypto/tls/
go run generate_cert.go --host localhost
目录下会生成keyFile和crtFile 两个文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)