码农行者 码农行者
首页
  • Python

    • 语言特性
    • Django相关
    • Tornado
    • Celery
  • Golang

    • golang学习笔记
    • 对比python学习go
    • 模块学习
  • JavaScript

    • Javascript
  • 数据结构预算法笔记
  • ATS
  • Mongodb
  • Git
云原生
运维
垃圾佬的快乐
  • 数据库
  • 机器学习
  • 杂谈
  • 面试
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

DeanWu

软件工程师
首页
  • Python

    • 语言特性
    • Django相关
    • Tornado
    • Celery
  • Golang

    • golang学习笔记
    • 对比python学习go
    • 模块学习
  • JavaScript

    • Javascript
  • 数据结构预算法笔记
  • ATS
  • Mongodb
  • Git
云原生
运维
垃圾佬的快乐
  • 数据库
  • 机器学习
  • 杂谈
  • 面试
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Python

  • Golang

    • golang学习笔记

    • 对比python学习go

    • 模块学习

      • 「Go模块」- time
      • 「Go模块」译-深入理解Golang channel
      • 「Go Tips」for range 遍历时变量取值的问题分析
      • 「Go Tips」go mod 包管理
        • 简单收集下 Go 包管理中 go mod 常用命令备查
        • go.mod 关键字
        • go mod 存储问题
        • go 模块查找顺序
        • 一些可参考的文档
  • Javascript

  • 开发语言
  • Golang
  • 模块学习
DeanWu
2022-09-27
目录

「Go Tips」go mod 包管理

# 简单收集下 Go 包管理中 go mod 常用命令备查

# 确保 GO111MODULE 不为 off。
go env
GO111MODULE=off: 不使用 modules 功能。
GO111MODULE=on: 使用 modules 功能,不会去 GOPATH 下面查找依赖包。
GO111MODULE=auto: Golang 自己检测是不是使用 modules 功能。(默认)

# 新项目初始化 
go mod init <project_name>

# 拉取模块包
go mod download  # 只下载依赖包
go mod tidy  # 拉取必须模块,移除不用的模块


# 依赖包收集到项目目录方便编辑器识别
go mod vendor  # 会在项目根目录生成 vendor 目录

# 拉取某个报的特定版本,会自动添加到 go.mod 文件中
go get package@version
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# go.mod 关键字

module:用于定义当前项目的模块路径
go:用于设置Go 版本信息
require:用于设置一个特定的模块版本
exclude:用于从使用中排除一个特定的模块版本
replace:用于将一个模块版本替换为另一个模块版本


indirect  间接依赖
1
2
3
4
5
6
7
8

# go mod 存储问题

GOPATH模式下,依赖包存储在$GOPATH/src,该目录下只保存特定依赖包的一个版本。

GOMODULE模式下,依赖包存储在$GOPATH/pkg/mod,该目录中可以存储特定依赖包的多个版本(go get 指定下载多个版本)

$GOPATH/pkg/mod目录下有个cache目录,它用来存储依赖包的缓存,简单说,go命令每次下载新的依赖包都会在该cache目录中保存一份

# go 模块查找顺序

gomodule 模式下:

vendor  >  $GOPATH/pkg/mod > $GOPATH
1

gopath 模式下:

$GOPATH
1

# 一些可参考的文档

  • go 包管理发展历史 (opens new window)
#Golang
上次更新: 2023/03/28, 16:27:19
「Go Tips」for range 遍历时变量取值的问题分析
Javascript 使用记录

← 「Go Tips」for range 遍历时变量取值的问题分析 Javascript 使用记录→

最近更新
01
chromebox/chromebook 刷bios步骤
03-01
02
redis 集群介绍
11-28
03
go语法题二
10-09
更多文章>
Theme by Vdoing | Copyright © 2015-2024 DeanWu | 遵循CC 4.0 BY-SA版权协议
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式