zoukankan      html  css  js  c++  java
  • Golang项目如何引用一个第三方的库

    Golang项目如何引用一个第三方的库?写好test.go文件后执行go run test.go的时候报错,其实是因为golang配置或者自己的项目没有配置正确。

    1、首先,安装完Golang之后,需要配置一些系统变量,就像Java一样【这点没有Python方便,Python是开箱即用】。其中最重要的变量是GOPATH(必须大写),这个变量是一个目录的绝对地址,Go语言使用这个目录进行第三方库和代码的管理,对于我们的代码中引用的第三方包,例如gin等,Go语言系统会去两个目录找这个第三方库,一个是GOROOT变量指向的目录(也就是Go语言的安装目录)下的pkg目录,一个是GOPATH指向的目录下的pkg/mod子目录。若这两个目录都找不到第三方库,就会报错。

    对于Windows系统的配置Go语言变量方法有两种:

    • 一种是使用go env命令,例如go env -w  GOPATH=D:\MyGoPathDIR,env是打印变量,加上-w选项表示写入,这里是设置GOPATH变量的值为D:MyGoPathDIR目录
    • 另外一种是设置windows的环境变量,在控制面板里添加一个GOPATH的系统变量,其值设置为D:MyGoPathDIR,保存即可。

    这两种方法都可以,但当两种方法设置的同一个变量的值不一致时,go语言系统会优先选择windows的环境变量。

    2、如果是简单的代码,不需要引用第三方的包,其实直接写个xxx.go文件,然后go run xxx.go就可以,但如果需要引用第三方的库,比如xxx.go引用了gin,那么必须建立工程项目。

    • 建立项目的方法是,先建立一个空目录, 然后在该目录下执行"go mod init 项目名"的命令,这样golang会自动在该目录下生成一个go.mod的文件。然后执行 go run xxx.go时,系统会提示找不到github.com/gin-gonic/gin,然后提示你使用go get命令去下载,你执行go get github.com/gin-gonic/gin命令,就会自动去下载gin,下载下来的文件会保存在GOPATH指向的目录的pkg/mod子目录下,go.mod文件的内容也会加上"require github.com/gin-gonic/gin v1.7.2 // indirect" 表示 这个项目依赖下载的github.com/gin-gonic/gin这个项目。你再次执行go run xxx.go时就可以成功执行了
    • 这其中golang为什么能自动去下载?这需要我们配置一个系统变量GO111MODULE,把其值设置为on,表示我们启用了go的module功能(这类似Java的maven功能,就是自动解决第三方依赖的一个工具),就会去自动下载,设置为auto(默认值),go将会根据当前目录来决定是否启用module功能。
    • 对于国内,我们还可以设置第三个变量GOPROXY来加速这个下载过程,这个变量是指向一个代理服务器,设置GOPROXY=https://goproxy.cn,direct,表示从https://goproxy.cn这个域名(七牛云)取下载第三方的库,比直接去github下载更快。

    详情请参考:https://studygolang.com/articles/28712

  • 相关阅读:
    年末反思
    Flink运行时架构
    Phoenix 启动报错:Error: ERROR 726 (43M10): Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.
    Clickhouse学习
    Flink简单认识
    IDEA无法pull代码到本地,Can't Update No tracked branch configured for branch master or the branch doesn't exist.
    第1章 计算机系统漫游
    简单的 Shell 脚本入门教程
    开源≠免费 常见开源协议介绍
    MySQL 视图
  • 原文地址:https://www.cnblogs.com/aaronhoo/p/15040633.html
Copyright © 2011-2022 走看看