常用命令
一、常用命令汇总
go version: 获取Go版本
go env: 查看Go环境变量
go help: 查看Go帮助命令
go get: 获取远程包(需提前安装git或hg)
go build: 编译并生成可执行程序
go run: 直接运行程序
go fmt: 格式化源码
go install: 编译包文件以及整个程序
go test: go原生提供的单元测试命令
go clean: 移除当前源码包和关联源码包里编译生成的文件
go tool: 升级Go版本时,修复旧版代码
godoc -http:80:开启一个本地80端口的web文档
gdb 可执行程序名:调试Go编译出来的文件
go command [arguments]
二、常见的命令详解
1、go build
1、go build ,它可以启动编译,把我们的包和相关的依赖编译成 一个可执行的文件 。
2、如果是main包,执行go build之后,会在当前目录下生成一个可执行文件。
3、演示:
// 编译当前目录为一个可执行文件
go build .
// 编译hello.go文件为一个可执行文件
go build hello.go
2、go run
1、go build 是先编译,然后我们再执行可以执行文件来运行我们的程序,需要两步。
2、go run 这个命令就是可以把这两步合成一步的命令,节省了我们录入的时间
3、go get
1、go get用来获取远程仓库中的包,使用该命令前必须配置GOPATH,而且依据不同的源码网站,还要安装不同的版本管理工具,比如从github上使用go get需要额外安装git。
2、go get本质上可以理解为通过源码工具clone下代码后,执行了go install。
go的包管理
一、go的三种包管理
go path
在 1.5 版本之前,所有的依赖包都是存放在 GOPATH 下,没有版本控制。
这种方式的最大的弊端就是无法实现包的多版本控制,比如项目 A 和项目 B 依赖于不同版本的 package,如果package 没有做到完全的向前兼容,往往会导致一些问题。
go vendor
1.5 版本推出了 vendor 机制。所谓 vendor 机制,就是每个项目的根目录下可以有一个 vendor 目录,里面存放了该项目的依赖的 package。 go build 的时候会先去 vendor 目录查找依赖,如果没有找到会再去GOPATH 目录下查找。
go module
1.11 版本推出 modules 机制,简称 mod。该模式通过mod.go文件管理依赖关系
二、go里面的前置知识
1、两个命令
安装二进制可执行文件推荐使用go install
go install xxx (安装xxx第三方二进制可执行文件 )
go install 类似 go build , 将生成的可执行文件放到 【$GOPATH/bin】 目录中
go get xxx (下载xxx第三方依赖包并安装)
go get 是下载并安装,即 git clone + go install ,将clone的源码放到 【$GOPATH/src】 中
GOROOT:go的安装目录,类似java的jdk,存放一些内置的开发包和工具。
GOPATH:go指定的工作空间用于保存go项目的代码和第三方依赖包。
三、go mod命令的使用
1、go help mod查看相关帮助命令、
2、go mod的常用命令
go mod init:初始化modules
go mod download:下载modules到本地cache
go mod edit:编辑go.mod文件,选项有-json、-require和-exclude,可以使用帮助go help mod edit
go mod graph:以文本模式打印模块需求图
go mod tidy:检查,删除错误或者不使用的modules,下载没download的package
go mod vendor:生成vendor目录
go mod verify:验证依赖是否正确
go mod why:查找依赖
go test 执行一下,自动导包
go list -m 主模块的打印路径
go list -m -f={{.Dir}} print主模块的根目录
go list -m all 查看当前的依赖和版本信息
原文地址:https://blog.csdn.net/weixin_47661174/article/details/125584243
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_45226.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。