目录
Go Proxy
Go Proxy主要解决由于网络因素,下载依赖包缓慢的问题。通过 Go Proxy 可以通过国内镜像加快下载速度。当然,如果镜像中没有你需要的包,那下载速度和没有用 Go Proxy 一样。
阿里云Go Module代理仓库服务
https://mirrors.aliyun.com/goproxy/http://代理仓库服务的官方路径http://xn--5mq5a23tk5l7vdntb15wwtc5r8bohfhm6e使用要求:
- 使用go1.11以上版本并开启go module机制
- 使用下列语句之一,设置环境参数GOPROXY
export GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
上述代码中的 "direct",表示前一个URL无法下载到所需依赖项时,从模块的源地址去下载
GoProxy中国
https://github.com/goproxy/goproxy.cnhttp://GoProxy中国官方路径
使用要求:
- 开启go module机制
- 使用下列两条语句之一,设置环境参数GOPROXY
export GOPROXY=https://goproxy.cn,direct
go env -w GOPROXY=https://goproxy.cn,direct
配置文件
go的全局编译环境参数所在文件位于 ~HOME/.config/go/env ,可以执行命令 go env ,然后查看 GOENV参数的值
编译
脚本文件
通过编写脚本文件 build.sh 实现编译指定项目或文件,并输出到指定的路径上。
我的目录结构如下:
其中,target是我自己创建的,希望存放编译后的文件,build.sh是我创建用来执行编译的脚本文件,该文件具体内容如下:
#!/usr/bin/env bash
CURRENT_DIR="/home/one/Documents/GoWorkSpace/StudyGo/target"
# 保存编译环境参数
OLD_GO_PATH="$GOPATH" #例如: /usr/local/go
OLD_GO_BIN="$GOBIN" #例如: /usr/local/go/bin
# 将编译环境参数指向我期望的目录
export GOPATH="$CURRENT_DIR"
export GOBIN="$CURRENT_DIR/bin"
# 指定并整理当前的源码路径
gofmt -w src
# 编译指定目录下的指定文件
go install src/application.go
# 恢复原编译环境参数值
export GOPATH="$OLD_GO_PATH"
export GOBIN="$OLD_GO_BIN"
文件中,CURRENT_DIR必须是绝对路径,否则报错。若 build.sh 没有执行权,可以使用下列命令授权:
sudo chmod 755 ./build.sh
注:执行上述命令必须在 build.sh 同一目录下,否则路径需要修改。
执行完毕后,target 目录下就会生成 bin \ application 可执行文件