快乐坚果

博客园 首页 新随笔 联系 订阅 管理
  78 随笔 :: 0 文章 :: 16 评论 :: 14万 阅读

golang的最新项目管理推荐采用module模式。

一、go mod命令使用详解

1.golang版本 go的module管理模式在golang 1.11版本后才能够使用。

2.环境变量的设置 要使用golang的module项目管理模式,需要设置对应的环境变量GO111MODULE的值,该变量有三种类型,如下:

1)GO111MODULE=auto 此为默认值,在此模式下,如果代码在gopath下,则自动使用gopath模式;如果代码不在gopath下,则自动使用GO mod模式。这种情况下可以分为两种情形:

(1)当前目录在GOPATH/src之外且该目录包含go.mod文件

(2)当前文件在包含go.mod文件的目录下面。

2)GO111MODULE=on 此模式下,项目不再使用GOPATH,直接采用module模式管理项目,go命令行会使用modules,而一点也不会去GOPATH目录下查找。

3)GO111MODULE=off 此模式下,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。。

3.各命令的使用

go mod download //下载依赖包 
go mod edit //edit go.mod from tools or scripts 编辑go.mod 
go mod graph //打印模块依赖图
go mod init //initialize new module in current directory 在当前目录初始化mod
go mod tidy //拉取缺少的模块,移除不用的模块。
go mod vendor //将依赖复制到vendor下
go mod verify //verify dependencies have expected content 验证依赖是否正确
go mod why //解释为什么需要依赖

二、module的目录结构

复制代码
projectName
|---main.go
|---mypack1
         |---a.go
         |---b.go
|---mypack2
         |---c.go
         |---d.go
|---go.mod
|---go.sum
|---vendor
         |---github.com/...
         |---golang.org/...
复制代码

注意,利用go mod init命令初始化时的module名字要与main.go中引入时的一致。例如:

go mod init projectName

则在main.go中要如此引用:

复制代码
package main

import (
    "projectName/mypack1"
    "projectName/mypack2"
)

func main() {
...
复制代码

 

posted on   merrynuts  阅读(564)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示