Go 语言模块化编程 - go module ( 二 )

yufei       6 年, 3 月 前       2248

Go 语言模块化编程 - go module ( 一 ) 章节中,我们介绍了 go module 的一些基本知识,现在,是时候开始动手编写一个简单的 go module 了

等等,当我写完上面这句话时,我突然间发现忘记介绍 go module 相关的工具了,哎,又要废去一个章节来讲解它们

初始化

要创建一个 go module,首先要做的就是创建 go.mod 文件,当然了,从前面的章节中我们已经知道了 go.mod 文件大概长啥样

module my/thing

require (
        one/thing v1.3.2
        other/thing v2.5.0 // indirect
        ...
)

exclude (
        bad/thing v0.7.3
)

replace (
        src/thing 1.0.2 => dst/thing v1.1.0
)

但是,等等,你真的想自己手动 touch go.mod 然后 vi go.mod 来创建吗?go 工具链里有没有提供相关的命令来简化这些操作呢 ?

当然有的,go 这次很大方,一次性给足了需要的所有工具

我们可以使用下面的命令来创建一个 go.mod 文件

go mod -init

如果模块根目录位于 VCS 之外,则必须使用 -module <path> 给命令传递导入路径

为了向前兼容,也为了简化转换过程,模块创建命令还支持流行的依赖管理工具,如 depglideglockgodep

同步 sync

如果要清除未使用的依赖项或获取新的依赖项,可以使用 sync 选项

go mod -sync

添加、排除、替换依赖项

添加、排除、替换依赖项有两种方式

  1. 手动编辑 go.mod
  2. 使用 go 工具包提供的 CLI 命令

简单保险起见,我们推荐你使用 CLI,包含以下命令

添加一个新的依赖,@version 用于指定依赖的版本

go mod -require one/thing@version

删除一个依赖

go mod -droprequire one/thing

排除一个依赖

go mod -exclude bad/thing@version

恢复被排除的依赖

go mod -dropexclude bad/thing@version

替换一个依赖

go mod -replace src/thing@version=dst/thing@version

放弃一个替换

go mod -dropreplace src/thing@version

当你看完这些命令,是不是感觉,相比于 Python 语言的 pip 命令,简直多了好几个多此一举的命令

依赖图谱

要显示一个模块的依赖关系,可以使用下面的命令来显示依赖图谱

go mod -graph

生成组织机构

如果出于向前兼容性考虑,你可能需要通过 组织机构 来发送应用程序,那么可以下面的命令从 go.mod 生成组织名目录

go mod -vendor

显示帮助信息

上面这些命令你不必全部都记住,只在需要的时候可以通过 go help modgo help modules 来显示模块的更多信息

后记

这些,终于把 go module 的工具链讲清除了,下一个章节,应该可以开始开发自己的简单模块了吧

算了,不打包票,可能要等到下一个章节了才清楚

目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.