GO模块是在GO 1.11中引入的GO项目中管理和组织依赖性的一种新方法,并成为GO 1.13中的默认值。如果您不熟悉开发,则“ 依赖关系”是您项目需要运行的一部分,类似于构建块。 GO模块使在您的项目中添加新模块变得简单,添加依赖性更新,将其升级到较新的版本,并删除不再需要的任何内容。如果您是新手进入模块并想了解基础知识,那么该初学者的教程将引导您完成所有需要知道的步骤。
GO模块是管理GO项目中依赖关系的工具,对于任何GO开发人员来说都是至关重要的。但是,如果您是新手,知道从哪里开始可能会很具有挑战性。这就是为什么我制作了此GO模块初学者指南的原因。在这篇文章中,我们将浏览以下基础:
1。创建一个新模块:
一个模块是一个go软件包的集合,该包在其根部具有“ go.mod”文件的文件树中。在此阶段,您将学习如何在GO项目中添加新模块。
2。添加依赖性:
依赖关系是您项目需要运行的代码。在此步骤中,我们将教您如何使用GO模块为您的项目添加新的依赖性。
3。升级依赖性:
依赖项可以更新以提供错误补丁,性能增强功能和新功能。在此阶段,我们将教您如何使用GO模块将依赖项升级到最新版本。
4。添加对新的主要版本的依赖性:
新的依赖性版本可能具有与旧版本不相容的重大修改。在此步骤中,我们将教您如何将依赖关系升级到新的主要版本。
5。将依赖性升级到新的主要版本:
当您将依赖关系升级到新的主要版本时,您可能需要更改代码以确保兼容性。在此步骤中,我们将教您如何将依赖关系升级到新的主要版本。
6。删除未使用的依赖性:
从长远来看,您可能不需要对项目的依赖。在此阶段,我们将教您如何使用GO模块删除未使用的依赖项。
在本初学者指南结束时,您将掌握GO模块的基本原理以及如何使用它们来管理GO项目中的依赖项。
现在,我们将用详细的解释逐步将所有内容分解。
创建和测试新的GO模块:
在GO编程语言中,模块是可以与其他开发人员共享并共享的相关软件包的集合。模块的软件包是在目录层次结构中组织的,并且模块本身由模块的root目录中的名为go.mod的文件定义。 GO模块通过允许开发人员指定其依赖包装的版本来改善使用第三方代码的经验。
现在,假设您要在GO编程语言中创建一个新的模块。这是创建和测试新模块的分步指南:
-
在计算机外部的
$GOPATH/src
目录之外,在计算机外部的计算机外部创建一个新目录 -
在命令提示或终端中,通过运行以下命令导航到新目录:
$cd /path/to/your/new/directory
- 在新目录中,创建一个名为 hello.go.go 的新文件,并添加以下代码:
_此代码创建一个返回字符串的函数“ Hello,
世界。”当称为._
- 现在,我们需要测试Hello功能。在与
hello.go
同一目录中创建一个名为hello_test.go
的新文件,并添加以下代码:
此代码通过将函数的实际输出与预期输出进行比较,即 此命令在当前目录中创建一个新模块,并生成一个GO.mod文件指定模块的名称和依赖项。 进行测试 此命令将运行我们在步骤4中创建的测试并输出结果摘要。如果测试通过,您应该看到一条消息,上面写着>“通过” <。<。<。<。 此文件还指定了我们正在使用的GO版本(在这种情况下,版本1.16)。 此行将报价软件包导入到我们的模块中。 此代码在调用Hello函数时从报价包中返回随机报价。 进行测试 此命令将下载 就是这样!您现在创建并测试了GO中的新模块。我希望你喜欢那个。编码是关于玩得开心的,我想让它尽可能简单易于理解。让我们玩下一部分。 添加和测试GO中的新依赖性。 当我们在程序中使用别人的代码时,我们将其称为依赖关系。 GO模块的目的是使我们的程序中的依赖关系变得容易。 在GO中,我们可以在代码中导入其他软件包。要添加新的依赖性,我们需要导入软件包,然后在程序中使用它。这是所涉及的步骤的细分: 升级依赖项 在GO中,软件包可以取决于其他软件包的工作。这些依赖项是使用GO模块来管理的,这使您可以指定包装所需的依赖项的版本。 要升级依赖项,您需要按照以下步骤操作: - 抚养依赖项的次要版本(在此示例中 - 检查go.mod文件中的新版本:: 升级依赖项后,请记住要更改您的版本控制系统。 添加对新的主要版本的依赖性 将新功能添加到取决于新的模块的新主要版本的软件包时,可以遵循以下步骤: 将依赖性升级到新的主要版本: 将依赖性升级到新的主要版本可以引入代码的破坏更改。因此,在升级之前仔细检查新主要版本的发行说明和文档至关重要。一旦您确信升级不会引起任何问题,就可以按照以下步骤升级依赖性: 请注意,谚语函数需要由模块路径 请注意,我们已经更新了代码以使用依赖项的新主要版本,该版本包括新的 删除未使用的依赖性: 最好会定期查看您的项目依赖性并删除不再使用的任何内容。这可以帮助减少项目的规模并简化维护。 要从项目中删除依赖性,您需要采取以下步骤: 在您的代码中查看并找到任何引用依赖项的导入语句。检查您是 从您的代码引用依赖项的代码中删除导入语句。 使用Go Mod Tidy命令从您的 将更改提交您的版本控制系统。 这是如何从使用 项目中不再使用 删除 在项目目录中运行 这将从go.mod文件中删除以下行: 将更改更改为您的版本控制系统,以保存您的项目的更改。 结论 使用GO模块是管理GO中依赖关系的推荐方法。随着GO 1.11和GO 1.12的引入,现在可用于所有受支持的GO的模块。 本教程涵盖了用于使用GO模块的基本工作流程,包括初始化新模块,添加和升级依赖关系以及删除未使用的依赖项。我们还看到了如何使用模块版本以及如何使用不兼容的重要版本处理依赖项。 要开始在本地开发中使用模块,请为您的项目创建一个go.mod文件,并使用 我们鼓励您在GO项目中尝试模块,并向GO社区提供反馈,以帮助塑造GO中依赖性管理的未来。使用GO模块,您的GO项目中的依赖关系从未如此简单! 感谢和备注。 感谢您阅读我的文章。请在下面留下您的反馈;它使我继续前进,并帮助我知道我需要做些什么,以提高我在那里的内容的质量。 这是我的Twitter:https://twitter.com/kingkunte_ 欢呼!Hello, world.
。
go mod init
command。运行以下命令:
go mod init example.com/hello
go test
命令测试模块:
go.mod
文件,您会发现它包含了我们刚创建的模块的名称:
module example.com/hello
go 1.16
rsc.io/quote
软件包,该软件包提供了一系列著名的报价。打开hello.go
文件并在文件开头添加以下行:
Hello
函数看起来像这样:
rsc.io/quote
软件包及其依赖项,然后运行我们在步骤4中创建的测试。如果测试通过,您应该看到一条显示“通过”
$ mkdir hello && cd hello
$ go mod init example.com/hello
$ go run hello.go
Hello, world.
$ go get rsc.io/sampler
$ go run hello.go
Hello, world.
This is the sampler.
$ go list -m all
example.com/hello
golang.org/x/text
rsc.io/quote v1.5.2
rsc.io/sampler v1.3.0
golang.org/x/text
):
$ go get golang.org/x/text
$ go test
PASS
$ cat go.mod
module example.com/hello
go 1.16
require (
golang.org/x/text v0.3.6 // indirect
rsc.io/quote v1.5.2
rsc.io/sampler v1.3.0
)
rsc.io/sampler
):
$ go get rsc.io/sampler@v1.3.1
$ go test
PASS
$ cat go.mod
module example.com/hello
go 1.16
require (
golang.org/x/text v0.3.6 // indirect
rsc.io/quote v1.5.2
rsc.io/sampler v1.3.1
)
$ go test
PASS
ok example.com/hello 0.024s
$ go list -m rsc.io/q...
rsc.io/quote v1.5.2
rsc.io/quote/v3 v3.1.0
$ go test
PASS
ok example.com/hello 0.014s
$ git add.
$ git commit -m "Add Proverb function using rsc.io/quote/v3."
rsc.io/quote/v3
标识的rsc.io/quote
依赖项的新主要版本。
$ go test
go: finding rsc.io/quote/v3 v3.1.0
go: downloading rsc.io/quote/v3 v3.1.0
go: extracting rsc.io/quote/v3 v3.1.0
PASS
ok example.com/mypackage 0.021s
HelloV3()
函数。
$ go test
PASS
ok example.com/mypackage 0.020s
$ git add.
$ git commit -m "Add Proverb function that requires rsc.io/quote/v3, upgrade dependency to use v3 APIs."
go.mod
文件以查看依赖项是否已列出。
go.mod
file中删除未使用的依赖项。此命令将删除您的代码不需要的go.mod
文件中的任何模块。rsc.io/quote/v3
软件包的项目中删除未使用依赖的示例:
rsc.io/quote/v3
软件包。
import quoteV3 "rsc.io/quote/v3"
从hello.go
文件。
$go mod tidy
以从go.mod文件中删除未使用的依赖。
$ go mod tidy
$ git add hello.go go.mod go.sum
$ git commit -m "Remove unused dependency rsc.io/quote/v3."
$go get
根据需要添加依赖项。要使模块的依赖关系保持最新状态并删除所有未使用的依赖项,请使用Mod Chity。