From c3da564596cf423e34c71001540317f87c2a8360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Sun, 10 Sep 2023 17:47:14 +0800 Subject: [PATCH] =?UTF-8?q?post:=E5=9F=BA=E6=9C=AC=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8F=91=E5=B8=83=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SUMMARY.md | 2 +- src/project-structure/module/release.md | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 src/project-structure/module/release.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 3922b34..89ff07a 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -20,7 +20,7 @@ - [可见性](./project-structure/visiblity.md) - [Go Module](./project-structure/module/index.md) - [go.mod 的组织](./project-structure/module/mod-file.md) - - [依赖版本的发布]() + - [依赖版本的发布](./project-structure/module/release.md) - [Go 基本语法]() - [基本数据类型]() - [表达式]() diff --git a/src/project-structure/module/release.md b/src/project-structure/module/release.md new file mode 100644 index 0000000..6e2187b --- /dev/null +++ b/src/project-structure/module/release.md @@ -0,0 +1,9 @@ +# 依赖版本的发布 + +发布一个模块的指定版本并不是一个困难的事情,只需要了解了 Go 命令是如何去解析模块的版本的,就可以非常轻松自如的发布自己项目模块的不同版本。 + +Go 在设计之初就把 Github 作为了其所有依赖的存储库,所以对于模块路径和版本的解析也都是几乎完全针对 Git 设计的。对于模块版本的解析,一个最简单也是使用最普遍的情况就是如果一个模块被放置在存储库的根目录中,那么就可以通过 Git 版本库的 tag 功能来发布模块的版本。此时 tag 的名称只需要是前面所叙述的语义化版本即可。 + +如果模块是在存储库中的子目录中定义的,那么存储库中的 tag 名称就必须增加子目录名称作为版本号前缀。例如 Go 工具库`golang.org/x/tools/gopls`就是在其存储库`golang.org/x/tools`的子目录`gopls`中定义的,那么`gopls`在发布的时候,其 tag 名称就必须为`gopls/v0.4.0`的形式。 + +如果项目没有发布在 Github 上,那么只要项目使用的是基于 Git 的存储库,那么都可以使用这个方法来发布项目的版本。