Golang如何使用go.mod配置加载本地模块

 更新时间:2023年09月18日 09:16:31   作者:神神的蜗牛  
这篇文章主要介绍了Golang如何使用go.mod配置加载本地模块问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Golang使用go.mod配置加载本地模块

Go现在通过 go.mod 文件来配置模块加载使用是非常方便了,下面说下如何在当前项目中加载另一个本地正在开发的模块:

go.mod

module github.com/zhouzme/test-go
go 1.12
require github.com/zhouzme/snail-go v0.0.0-20190401091717-1f0218b38bc8
replace github.com/zhouzme/snail-go => E:\Go\snail-go

默认使用 github.com/zhouzme/snail-go 包会到 github 上去下载,但这个包还在本地开发中并未push到线上,那么可以通过 replace 配置来重定向当前项目对该包的加载路径:

replace github.com/zhouzme/snail-go => E:\Go\snail-go

这里 E:\Go\snail-go 为本地包的绝对路径,这样写就可以了,当本地 snail-go 包代码修改后就可以在当前项目看到实时效果了,注意中间符号是 =>

Go mod使用

使用Go mod进行包管理,会使你进行项目移植的时候轻松许多

go mod是在go 1.11版本新加的特性,所以使用go mod要保证go的版本在1.11或之后。

将如下配置到你的go环境变量中

# on 表示只使用 Go Modules,而不去Go PATCH 下去找包
# 我使用的goland,第一次执行这命令报错 warning: go env -w GO111MODULE=... does not override conflicting OS environm
# 原因是需要在设置中,在Go Modules配置里 Enable Go modules integration 前面的对号没有勾选
# 勾选保存后,需要重启goland 再执行就ok了
go env -w GO111MODULE=on  

taps:

  • go env :查看go的环境变量
  • go env -w XXX=XXX :配置go的环境变量
  • go env -u XXX=XXX :取消go的环境变量

命令:(只说几个重要的)

  • go help mod:查看帮助
  • go init:在当前文件夹(项目)下初始化一个新的
  • modulego tidy:同步模块

步骤

建立工程

到工程目录下:go mod init (工程名)

工程名加不加都行

会生成一个go.mod文件

现在使工程中引入一些需要下载的包

使用go mod tidy 同步模块,如果此步骤无法同步包,有可能是网络问题,需要配置代理:

2022/11/15  当前好用代理配置如下
# 配置 GOPROXY 环境变量
go env -w GOPROXY=https://proxy.golang.com.cn,direct
# 还可以设置不走 proxy 的私有仓库或组,多个用逗号相隔(可选)
go env -w GOPRIVATE=git.mycompany.com,github.com/my/private

此时的go.mod中出现了新的包 和 版本

配置成功

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Go实现自己的网络流量解析和行为检测引擎原理

    Go实现自己的网络流量解析和行为检测引擎原理

    这篇文章主要为大家介绍了Go实现自己的网络流量解析和行为检测引擎原理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 如何避免Go语言常见错误之意外的变量隐藏

    如何避免Go语言常见错误之意外的变量隐藏

    在Go语言中,变量隐藏(Variable Shadowing)是一个常见的错误来源,变量隐藏发生在一个内部作用域中声明的变量与外部作用域的变量同名时,这可能导致开发者无意中使用了错误的变量,造成难以追踪的bug,本文讲解一些关于变量隐藏的常见错误和如何避免它们的方法
    2024-01-01
  • Golang中设置全局变量并在其他文件中使用

    Golang中设置全局变量并在其他文件中使用

    全局变量是被整个程序都可见的变量,通常用于存储程序中需要共享的数据,本文就来介绍一下Golang中设置全局变量并在其他文件中使用的方法,感兴趣的可以了解一下
    2024-01-01
  • Goland项目使用gomod配置的详细步骤

    Goland项目使用gomod配置的详细步骤

    Goland是一个用于Go语言开发的IDE,Goland的项目结构与Go语言的项目结构相似,下面这篇文章主要给大家介绍了关于Goland项目使用gomod配置的详细步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • 浅谈go 协程的使用陷阱

    浅谈go 协程的使用陷阱

    这篇文章主要介绍了浅谈go 协程的使用陷阱,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Go Slice扩容的这些坑你踩过哪些

    Go Slice扩容的这些坑你踩过哪些

    这篇文章主要为大家详细介绍了Golang中对切片Slice的append操作时会遇到的踩坑经验分享,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-03-03
  • golang如何利用原始套接字构造UDP包详解

    golang如何利用原始套接字构造UDP包详解

    这篇文章主要给大家介绍了关于golang如何利用原始套接字构造UDP包的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用golang具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-10-10
  • 详解golang中的method

    详解golang中的method

    这篇文章主要介绍了golang中的method的相关资料,帮助大家更好的理解和使用golang,感兴趣的朋友可以了解下
    2021-01-01
  • go语言操作es的实现示例

    go语言操作es的实现示例

    本文主要介绍了go语言操作es的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 深度剖析Golang如何实现GC扫描对象

    深度剖析Golang如何实现GC扫描对象

    这篇文章主要为大家详细介绍了Golang是如何实现GC扫描对象的,文中的示例代码讲解详细,具有一定的学习价值,需要的小伙伴可以参考一下
    2023-03-03

最新评论