写点什么

手把手教你怎么导入 Go 语言第三方库「让我们一起 Golang」

用户头像
Regan Yue
关注
发布于: 2 小时前
手把手教你怎么导入Go语言第三方库「让我们一起Golang」

手把手教你怎么导入 Go 语言第三方库

一、使用 go get 获取

GO 的命令go get让我们可以方便快捷的从网络中下载或更新 Go 语言包及其依赖文件,并将他们编译和安装。


  1. 先在命令行模式下输入go --help,可查看以下信息。


Go is a tool for managing Go source code.
Usage:
go <command> [arguments]
The commands are:
bug start a bug report build compile packages and dependencies clean remove object files and cached files doc show documentation for package or symbol env print Go environment information fix update packages to use new APIs fmt gofmt (reformat) package sources generate generate Go files by processing source get add dependencies to current module and install them install compile and install packages and dependencies list list packages or modules mod module maintenance run compile and run Go program test test packages tool run specified go tool version print Go version vet report likely mistakes in packages
Use "go help <command>" for more information about a command.
Additional help topics:
buildconstraint build constraints buildmode build modes c calling between Go and C cache build and test caching environment environment variables filetype file types go.mod the go.mod file gopath GOPATH environment variable gopath-get legacy GOPATH go get goproxy module proxy protocol importpath import path syntax modules modules, module versions, and more module-get module-aware go get module-auth module authentication using go.sum module-private module configuration for non-public modules packages package lists and patterns testflag testing flags testfunc testing functions
Use "go help <topic>" for more information about that topic.
复制代码


我们可以看到get add dependencies to current module and install them


这就是我们今天要用到的东西。


然后查看它的帮助信息:go get --help


usage: go get [-d] [-f] [-t] [-u] [-v] [-fix] [-insecure] [build flags] [packages]Run 'go help get' for details.
复制代码



找到我们要获取的库。


复制链接https://github.com/go-sql-driver/mysql


使用go get github.com/go-sql-driver/mysql


结果报错:


go: missing Git command. See https://golang.org/s/gogetcmdpackage github.com/go-sql-driver/mysql: exec: "git": executable file not found in %PATH%
复制代码


这里要安装 Git,博主是安装了 Git 的,不过这里需要配置一下。



在系统变量的 PATH 里面添加 Git 的 bin 目录的路径。


然后再运行go get github.com/go-sql-driver/mysql



现在就成功了。



这个github.com/go-sql-driver/mysql被称为远程导入路径,其实 go get 被称为远程动态导入 GO 包。其实go get干的事就是从分布式版本控制系统的仓库中找出代码包并将它编译以及安装。



一般情况下,代码包远程导入路径中的第一个元素就是代码托管网站的主域名。在静态分析的时候,go get命令会将代码包远程导入路径与预置的代码托管站点的主域名进行匹配。如果匹配成功,则在对代码包远程导入路径的初步检查后返回正常的返回值或错误信息。如果匹配不成功,则会再对代码包远程导入路径进行动态分析。

二、直接下载 GO 库

在 github 或者其他地方下载 Go 库。



然后在系统变量查看 GOPATH。


然后打开 GOPATH 的 src 目录



将文件复制进去。



然后就成功获取了。

三、参数介绍

usage: go get [-d] [-f] [-t] [-u] [-v] [-fix] [-insecure] [build flags] [packages]Run 'go help get' for details.
复制代码


然后我们可以看一看go help get里有关参数的介绍。


The -d flag instructs get to stop after downloading the packages; that is,it instructs get not to install the packages.
The -f flag, valid only when -u is set, forces get -u not to verify thateach package has been checked out from the source control repositoryimplied by its import path. This can be useful if the source is a local forkof the original.
The -fix flag instructs get to run the fix tool on the downloaded packagesbefore resolving dependencies or building the code.
The -insecure flag permits fetching from repositories and resolvingcustom domains using insecure schemes such as HTTP. Use with caution.
The -t flag instructs get to also download the packages required to buildthe tests for the specified packages.
The -u flag instructs get to use the network to update the named packagesand their dependencies. By default, get uses the network to check outmissing packages but does not use it to look for updates to existing packages.
The -v flag enables verbose progress and debug output.
复制代码


简单来说就是:


  • -d 下载完成后就停止工作,不安装库

  • -f 这个参数只有在使用了-u 参数时才有用,强制-u 不去验证 import 的每一个包是否已经获取了,这对本地 fork 的包非常有用。

  • -fix 这个-fix 参数表示在解决依赖关系或构建代码之前先运行 fix 工具。

  • -insecure 该参数允许通过不安全(例如 HTTP)的自定义域获取并解析使用存储库。

  • -t 该参数允许在下载该包时也下载测试该包需要的包。

  • -u 参数允许 get 使用网络来更新包以及它们的依赖。默认情况下,get 使用网络检查丢失的包,但不使用它来查找现有包的更新。

  • -v 启用详细进度和调试信息输出。

发布于: 2 小时前阅读数: 10
用户头像

Regan Yue

关注

还未添加个人签名 2020.08.12 加入

还未添加个人简介

评论

发布
暂无评论
手把手教你怎么导入Go语言第三方库「让我们一起Golang」