文章目录
一、Go 安装
进入Go下载网站:https://golang.google.cn/dl
1、Windows
下载Windows平台的安装包到本地,然后运行安装包,跟着提示走就可以安装完成。
2、Linux
- 下载Linux平台的压缩包到本地,解压到任意目录,如:
/opt。 - 编辑
/etc/profile,在末尾添加:
export GOROOT=/opt/go
export PATH=$GOROOT/bin:$PATH
- 执行
source /etc/profile,然后重启(否则只在当前终端中有效,新开终端需要再次执行命令才生效)。
二、查看版本
go version
三、查看环境变量
go env
四、开启 Go Modules
go env -w GO111MODULE=on
这里的GO111MODULE是为了使用用go mod。
五、设置 Go 模块代理
go env -w GOPROXY=https://goproxy.cn,direct
GOPROXY的默认值是:https://proxy.golang.org,direct,但是proxy.golang.org在国内是无法访问的,所以需要在开启Go Modules时,同时设置国内的Go模块代理。GOPROXY的值是一个以英文逗号“,”分割的Go模块代理列表,允许设置多个模块代理,假设你不想使用,也可以将其设置为“off”,这将会禁止Go在后续操作中使用任何Go模块代理。direct是一个特殊指示符,用于指示Go回源到模块版本的源地址去抓取(比如GitHub等),场景如下:当值列表中上一个Go模块代理返回404或410错误时,Go自动尝试列表中的下一个,遇见direct时回源,也就是回到源地址去抓取,而遇见EOF时终止并抛出类似“invalid version: unknown revision…”的错误。
链接:Goproxy 中国
六、下载和安装 Go Tools
- 方法1
go get -u golang.org/x/tools/...
链接:golang/tools - 方法2
在VS Code中按下快捷键Ctrl+Shift+P打开命令面板,在搜索框中输入:Go: Install/Update Tools,点击进去然后全选,点击确定等待安装。如果出现失败就换下代理地址,安装后重启VS Code。
七、安装 VS Code 调试工具
go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv
八、go mod 常用命令
go mod是一种包的管理方式,modules和传统的GOPATH不同,不需要包含例如src,bin这样的子目录,一个源代码目录甚至是空目录都可以作为module,只要其中包含有go.mod文件。
1、初始化模块
go mod init 包名
会在对应的目录下生成一个go.mod文件。
2、更新现有依赖
go mod tidy
根据go.mod文件来整理现有的依赖,删除未使用的依赖。
3、把项目依赖库下载到项目内部
go mod vendor
我们基go mod机制来管理我们项目的依赖库版本,其中go.mod记录了依赖库版本信息。一般第三方依赖库(包括公司内网gitlab上的依赖库),其源码都不被包含在我们的项目内部,而是在编译的时候go连接公网、内网下载到本地GOPATH,然后编译。问题是,有些时候需在无公网、无内网(无法连接内网gitlab)的情况下编译go项目,如何做呢?
在此时,需使用go mod vendor将项目的依赖库下载到项目内部,作为项目的一部分来编译。
九、使用私有仓库
1、配置ssh替代http
推荐使用ssh替代http(参考:Git笔记 的第2点设置仓库地址代理)例如:
# 此处使用了别名, 避免包引用名称太长
git config --global url."ssh://git@192.168.3.33:3333/".insteadOf "https://mylib.com/"
2、设置私有仓库
设置私有仓库,例如:
go env -w GOPRIVATE=mylib.com/go/base.git
3、拉取私有仓库
拉取私有仓库,例如:
go get mylib.com/go/go/base.git@master
可能遇到问题:
go: mylib.com/go/go/base.git@master-0.20240710060229-0dcc439c334e: invalid version: git ls-remote -q origin in /root/workspace/golang/pkg/mod/cache/vcs/0767fa6834f24d58177f73b8fb123465896ff4299edfdc04a7e1cc68f73e52da: exit status 128:
fatal: unable to look up mylib.com (port 9418) (No address associated with hostname)
原因: 没有配置ssh密钥导致的
解决方案: 配置git ssh密钥,并手动拉取一次git clone https://mylib.com/go/base.git
4、代码中使用
import (
logger "mylib.com/go/go/base.git/logger"
"mylib.com/go/go/base.git/database"
)
2020

被折叠的 条评论
为什么被折叠?



