教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 5分钟入门golang module

5分钟入门golang module

发布时间:2021-12-19   编辑:jiaochengji.com
教程集为您提供5分钟入门golang module等资源,欢迎您收藏本站,我们将为您提供最新的5分钟入门golang module资源

golang团队在版本1.13及以后全面支持module机制,用于结束混乱复杂的项目管理机制。同学们可以简单的将module机制理解成pip、apt-get等包管理工具。

一个项目(仓库)包括多个module(模块),一个模块包括多个package(包),而一个包含多个代码源文件。

简单的说,在一个module中,module机制自动保证导入所有源文件中使用的标准库和第三方包,而不用逐一go get;同时完成版本管理。

假设已安装golang 1.13或更高版本,则默认开启module机制,所以可以直接使用module相关的命令。

初始化module

通过go init初始化module后,在该目录下生成go.mod文件,用于记录项目中需要的第三方依赖的名称和版本;由于项目中可能使用相同依赖的不同版本,所以文件根据名称和版本进行区分。

另外会生成go.sum文件,用于记录第三方依赖的校验信息;当有项目交接、迁移等过程时,新的环境必须和go.sum中的记录相同。所以当有版本控制时,go.mod和go.sum两个文件一定要提交

<pre><code class="language-bash">$:mkdirgo_module_test && cdgo_module_test $:gomod init test go: creating new go.mod: module test $:catgo.mod module test #module名称 go 1.13 #go的版本</code></pre>

导入第三方依赖

之前通过go get来获取第三方依赖,而基于module机制,只要在源码中进行导入,通过go run/test/build等命令即可自动获取并存储到GOPATH/pkg下,那GOPATH是什么呢?GOPATH可以认为是工作目录,在安装go的时候会有默认值,可以通过命令查看:

<pre><code class="language-bash">go env | grep GOPATH</code></pre>

当然可以通过命令更改GOPATH目录

<pre><code class="language-bash">go env -w GOPATH=/xxx/xxx/xxx</code></pre>

通过类似go build等命令,第三方依赖都会被下载到GOPATH/pkg目录下。

例如,在test目录下编写如下源码并执行:go run main.go

<pre><code class="language-Go">packagemain ​ import( "fmt" "rsc.io/quote" ) ​ funcmain() { fmt.Println(quote.Hello()) }</code></pre>

大家可以发现两点: 第一、GOPATH/pkg下有quote的第三方包; 第二、go.mod多了一行:require http://rsc.io/quote v1.5.2 // indirect。require是关键词,其他的关键词还有module、replace和exclude;v1.5.2是版本。

到这里其实大家已经可以进行项目开发了,再简单的介绍几种命令,可能会用到。

go get:前面提到不需要用go get来获取第三方依赖,但是module只能自动获取特定格式的第三方依赖,而对其它非特定格式的第三方依赖依旧需要go get指令。

<pre><code>go get example.com/package //更新第三方依赖 go get -u example.com/package//下载最新版本的第三方依赖 go get example.com/package@v1.1.1 //下载特定版本的第三方依赖</code></pre>

go mod tidy:检查所有依赖,删除没有使用的依赖。

自从推出module机制,同学们就能愉快的开发项目啦。

到此这篇关于“5分钟入门golang module”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
5分钟入门golang module
Golang从入门到进阶系列:Go Modules机制
go mod使用
Go Module入门及Golang项目组织
golang 利用github自定义module 踩坑系列 类似于「springboot starter 一毛一样」
【golang】每隔几分钟执行一个函数可以这样做
go mod module declares its path as: gtihub.com/xxx-xx but was required as:xx-xx
golang之 go path和go module
go run main.go 参数_Go语言入门:Hello world
谷歌暗藏实时搜索:修改URL参数即可实现

[关闭]
~ ~