golang当前有两种模式
1、path
2、mod
当前以mod为例
PS: 本地vpn、梯子类的会影响到mod库的download,注意修改或者删除 http_proxy
Go Mod常用命令
go.mod文件命令
go.mod 提供了 module、require、replace 和 exclude 四个命令,如下:
命令 | 描述 |
---|---|
module | 语句指定包的名字(路径) |
require | 语句指定的依赖项模块 |
replace | 语句可以替换依赖项模块 |
exclude | 语句可以忽略依赖项模块 |
go mod常用命令
命令 | 描述 |
---|---|
download | 下载模块到本地缓存,具体可以通过命令 go env 查看,其中环境变量 GOCACHE 就是缓存的地址,如果该文件夹的内容太大,可以通过命令 go clean -cache |
edit | 从工具或脚本中编辑 go.mod 文件 |
graph | 打印模块需求图 |
init | 在当前目录下初始化新的模块 |
tidy | 添加缺失的模块以及移除无用的模块 |
verify | 验证依赖项是否达到预期的目的 |
why | 解释为什么需要包或模块 |
使用go-mod
创建
#创建
cd projectName //进入项目
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOPRIVATE=*.test.cc //配置私有域名 仓库优先从这里下载
go mod init projectName //创建mod配置
go get ... or go mod tidy
// 完成依赖包的加载
# 报错
go: github.com/circonus-labs/circonus-gometrics imports
github.com/circonus-labs/circonusllhist: github.com/circonus-labs/circonusllhist@v0.3.0: parsing go.mod:
module declares its path as: github.com/openhistogram/circonusllhist
but was required as: github.com/circonus-labs/circonusllhist
# 解决
# 其中 github.com/openhistogram/circonusllhist 是 新仓库地址
# github.com/circonus-labs/circonusllhist 是 旧仓库地址
# 下载最新的仓库地址
go get github.com/openhistogram/circonusllhist
# 接下来 编辑go.mod 将旧库的名字指向新库地址
vim go.mod
replace (
github.com/circonus-labs/circonusllhist v0.3.0 => github.com/openhistogram/circonusllhist v0.3.0
// 旧仓库 版本号 => 新仓库 版本号
)
# 然后继续开始 go get...
# go-mod 模式下加载本地包
package main
import "projectName/test"
// 加载逻辑: go-mod名称/目录下的具体包名
func main() {
...
}
ps:
使用go-mod模式后,goland加载模式需要变更。
GOPATH设置为空
再配置上这个内容,goland就能自动加载各种包了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现