安装方式:
1、使用Go env命令设置Go的环境
- go env
将其中两项参数的.org,换在.cn的
GOPROXY="https://proxy.golang.org,direct"
- go env -w GOPROXY=https://goproxy.cn,direct
再执行go env看一下配置是不是完成了
还要设置GO111MODULE为on
- go env -w GO111MODULE=on
设置完成后使用go env看一下 GOPROXY 和 GO111MODULE 是不是改好了
2、环境安装
https://goframe.org/pages/viewpage.action?pageId=1114274
安装对应架构的go环境
开发工具如果是使用vscode,下载:go / code runner 两个扩展即可
3、安装GF工具链
地址:https://github.com/gogf/gf-cli
工具安装:https://goframe.org/pages/viewpage.action?pageId=1115782
前提
确定自己当前项目的goframe依赖版本,查看自己的系统信息
go env GOOS
go env GOARCH
如果是zsh的终端,需要alias一下gf
- ## 安装
- wget -O gf "https://github.com/gogf/gf/releases/latest/download/gf_$(go env GOOS)_$(go env GOARCH)" && chmod +x gf && ./gf install -y && rm ./gf
- ## 如果是zsh终端的话,其他的可忽略
- alias gf=gf
gf install
I found some installable paths for you:
Id | Writable | Installed | Path
0 | true | true | /usr/local/bin
please choose one installation destination [default 0]: 0
gf binary is successfully installed to: /usr/local/bin
默认就是选择0的安装位置
可使用帮助命令
gf help gen
gf gen -h
version 工具版本查看
使用方式:
gf -v
gf -i
gf version
4、初始化项目
- gf init demo -u
该命令创建一个工程脚手架目录,项目名称是demo,其中的-u参数用户指定是否更新项目中使用的goframe框架为最新版本。
运行项目模板
项目模板可以执行以下命令运行:
cd housekeep-go && gf run main.go
默认情况下项目会设置Web服务端口为8000、开启OpenAPI接口文档、展示Swagger接口文档页面,这些关键信息都会展示到终端。默认情况下,会打印所有的路由信息到终端,该项目模板只会添加一个仅供演示的路由:/hello。
默认路由: http://127.0.0.1:8000/hello
5、升级GF框架
随时可以在项目根目录下(目录下有go.mod),执行以下命令更新使用最新的框架版本:
- gf up -a
使用go mod(旧资料)
进入到项目目录,初始化生成go.mod 文件
- go mod init goframe
(这里goframe名字也可以叫其他名字,一般为了与项目名称对应,就用项目名字)
以下可忽略:
可以看一下
- cat go.mod
项目目录下会生成go.mod文件, 类似于python的requirements.txt文件。同时也生成一个go.sum文件,主要记载了下载包的哈希值用于校验,我们用不到
go.mod文件一旦创建后,它的内容将会被go toolchain全面掌控。
go toolchain会在各类命令执行时,比如执行go get、go build、go run、go mod等命令时,自动修改和维护go.mod文件,这点跟pip还是有区别的
go.mod 提供了module, require、replace和exclude 四个命令
module 语句指定包的名字(路径)
require 语句指定的依赖项模块
replace 语句可以替换依赖项模块
exclude 语句可以忽略依赖项模块
可以使用命令 go list -m -u all 来检查可以升级的package,
使用go get -u need-upgrade-package 升级后会将新的依赖版本更新到go.mod文件中。
也可以使用 go get -u 升级所有依赖。
由于某些已知的原因,并不是所有的package都能成功下载,比如:golang.org下的包。
可以在 go.mod 文件中使用 replace 指令替换成github上对应的库,来下载相应的包。比如
replace (
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 => github.com/golang/cryptov0.0.0-20190701094942-4def268fd1a4
)
或者:
replace golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 => github.com/golang/crypto v0.0.0-20190701094942-4def268fd1a4