Go语言依赖管理和工程结构完全攻略

简介: Go语言依赖管理和工程结构完全攻略

Go语言依赖管理经历了几种工具,目前主流的是Go Modules

Go Modules自Go 1.11版本引入,通过go.mod文件管理依赖。主要特点如下

1. 初始化go.mod

在项目目录下执行`go mod init`生成go.mod文件,定义模块路径。

2. 记录依赖

执行`go get`会自动把依赖写入go.mod和go.sum。

3. 升级依赖

使用`go get package@version`可以升级依赖。

4. 使用依赖

不需要显式导入go.mod中的依赖,Go会自动引入。

5. 去掉未使用的依赖

`go mod tidy`可以删除未使用的依赖。

6. 版本选择

默认使用最新版本,可以通过`go get package@version`选择版本。

7. 引入本地包

使用replace指令可以引入本地包。

8. exclude和replace排除依赖

可用exclude排除不需要的包,replace注入 fork的包。

9. 提交依赖

只提交go.mod和go.sum文件,不提交vendor文件夹。

Go Modules实现了语义化版本管理、可重现的构建,是Go语言依赖管理的未来方向。

还有些补充的内容

1. 与GOPATH的关系

启用Go Modules后,会忽略GOPATH,不再以其来查找和下载依赖。Go Modules可以与GOPATH共存。

2. 模块代理

可以配置GOPROXY来指向代理,用于在企业环境下控制访问。

3. vendor目录

go mod vendor可以将依赖复制到vendor目录,用于隔离网络环境。

4. 语义化版本

Go Modules要求依赖使用语义化版本号,如v1.2.3。

5. 兼容性

低于Go 1.11的版本需要设置环境变量GO111MODULE=on来启用模块支持。

6. go.mod文件语法

go.mod使用特定语法记录模块路径、依赖关系、替换等信息。

7. go mod命令

go mod download/tidy/verify等命令可以管理模块缓存和依赖。

以上是Go Modules的更多高级用法,如版本控制、私有仓库配置、命令使用等方面。这有助于更全面地理解Go语言的依赖管理。


目录
相关文章
|
25天前
|
存储 监控 算法
基于 Go 语言跳表结构的局域网控制桌面软件进程管理算法研究
针对企业局域网控制桌面软件对海量进程实时监控的需求,本文提出基于跳表的高效管理方案。通过多级索引实现O(log n)的查询、插入与删除性能,结合Go语言实现并发安全的跳表结构,显著提升进程状态处理效率,适用于千级进程的毫秒级响应场景。
119 15
|
1月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
128 1
|
2月前
|
存储 监控 算法
企业电脑监控系统中基于 Go 语言的跳表结构设备数据索引算法研究
本文介绍基于Go语言的跳表算法在企业电脑监控系统中的应用,通过多层索引结构将数据查询、插入、删除操作优化至O(log n),显著提升海量设备数据管理效率,解决传统链表查询延迟问题,实现高效设备状态定位与异常筛选。
106 3
|
2月前
|
存储 Java 编译器
对比Java学习Go——程序结构与变量
本节对比了Java与Go语言的基础结构,包括“Hello, World!”程序、代码组织方式、入口函数定义、基本数据类型及变量声明方式。Java强调严格的面向对象结构,所有代码需置于类中,入口方法需严格符合`public static void main(String[] args)`格式;而Go语言结构更简洁,使用包和函数组织代码,入口函数为`func main()`。两种语言在变量声明、常量定义、类型系统等方面也存在显著差异,体现了各自的设计哲学。
|
3月前
|
Cloud Native Go API
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
346 0
|
3月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
221 0
|
3月前
|
Cloud Native Java 中间件
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
198 0
|
3月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
289 0
|
3月前
|
Cloud Native 安全 Java
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
276 1

热门文章

最新文章