golang使用gomod管理项目

使用gomod管理项目

  • go env 环境变量设置
  • 新建一个项目文件夹
    • 使用公有库文件
    • 使用私用库文件
    • 使用本地文件

关于go mod 如何使用,网上教程很多,这里主要记一下自己使用过程中遇到过的问题

go env 环境变量设置

**在讲项目之前先说一下环境变量的设置问题,因为 Go 1.13 将 GOPROXY 默认成了中国大陆无法访问的 https://proxy.golang.org ,所以我们中国的开发者从今以后必须先修改 GOPROXY 才能正常使用 go 来开发应用,这里建议设置成 goproxy.cn 。可以通过命令go env -w GOPROXY=goproxy.cn,direct 设置 **

新建一个项目文件夹

在项目根目录下使用 go mod init example.com 定义项目使用gomod管理,然后项目根目录下会生成go.mod文件

使用公有库文件

这个比较简单,在代码中引入某个文件,例如:import (github.com/*** ),使用 go mod tidy 或其它程序启动命令,gomod会自动下载该文件,路径为gobin目录下的pkg下的mod文件夹

使用私用库文件

在代码中引入某个私用库文件(该文件夹下必须也有go.mod文件才可以被引用),例如import (我自己的域名myprivate.com/***) ,使用go mod tidy 或其它程序启动命令,gomod就会自动下载该文件。
go env 环境变量

GOSUMDB="sum.golang.org"
# 指示校验和服务器的地址和公钥,若要关闭校验,GOSUMDB=off。
GOPRIVATE=""
# GOPRIVATE表示私有仓库。私有仓库下的所有依赖一律从源站下载,而且不做校验(如果设置私有仓库的话,下面这两个值为默认设为私有库地址)。
GONOPROXY= 
# 不设置代理 
GONOSUMDB= 
# 不校验公钥 

我这里放几个自己的错误提示

  1. 下载路径问题
    在这里插入图片描述
    这里可以看到 下载路径上莫名多了一级 goproxy.cn。我想下载私有库的文件,但是没有从源站点下载。
    通过设置 go env -w GOPRIVATE=“私有库地址” 问题解决

  2. 引入文件命名问题在这里插入图片描述
    这里提示模块引入路径不对

    检查自己创建的 test_hy 文件(引入文件),发现go mod 文件命名为:test_hy 
    把引入的go.mod文件命名改为路径模式 devops.******/test_hy  此时再次尝试go mod tidy  问题解决
    总结:引用的gomod文件命名必须和下载的路径一致
    
  3. 关于gomod引用文件的版本问题
    被引入文件的目录结构及内容如图:
    golang使用gomod管理项目_第1张图片

    测试程序的结构及内容如图:
    当go.mod中使用5月12号的test_hy版本时 报变量c.Ma找不到。
    golang使用gomod管理项目_第2张图片
    当go.mod中使用5月13号的test_hy版本时 程序正常运行。
    golang使用gomod管理项目_第3张图片

使用本地文件

例如:我在D:/新建一个项目命名为 example,然后D:/conf 里有example项目想用的方法或变量,
那怎么用呢?首先 保证 conf下有go.mod文件。然后再 example的go.mod文件的require里直接添加
conf v0.0.1 再写上 replace conf => D:\conf
conf文件内容如图:
golang使用gomod管理项目_第4张图片
测试用文件内容如图:
golang使用gomod管理项目_第5张图片

你可能感兴趣的:(go)