美文网首页
Go 学习笔记4 - Go Module 模块及依赖管理

Go 学习笔记4 - Go Module 模块及依赖管理

作者: 张云飞Vir | 来源:发表于2020-03-16 17:14 被阅读0次

概述

在写代码过程中,总要引用其他的库而产生功能模块的依赖。Go 在 版本1.1 开始提供 Module 模块化的支持。在1.4 版本后 鼓励所有用户从其他依赖性管理系统迁移到模块

模块

概念

“模块”是多个Go包 (package)的集合,将这些包作为一个整体一起进行版本控制。

“模块”记录了正确的依赖关系和依赖需要,在构建时会很便利。

总结 项目工程仓库、模块和包之间的关系:

  • 项目工程仓库 可以包含一个或多个Go模块。
  • 每个模块 可以包含一个或多个Go包。
  • 每个 包 由单个目录中的一个或多个Go源文件组成。

模块必须有个版本号,格式为:
v(major).(minor).(patch),
比如 v0.1.0, v1.2.3, or v1.5.0-rc.1.

go.mod 文件位于项目的根目录,项目也不必要放在GOPATH目录下。

初始化一个模块

在项目中开启 模块 的支持,需要手动开启。

指令格式:
go mod init 模块名
比如:

  go mod init mymod

在命令行窗口执行后,将会在当前目录下生产一个 go.mod 文件,内容如下:

module mymod

go 1.14

模块的应用更新

在goland 中,配置了上述的模块后。如果在代码里 import 了某个第三方模块,将会自动更新 go.mod 文件,比如我们在代码里添加

  package main

  import (
    "fmt"
    "rsc.io/quote"   // 假如这里新添加
  )

  func main(){
    fmt.Print("xxxxx")
    fmt.Println(quote.Hello())   // 假如这里新添加

  }

那么,你在run 或者同步工程时会发现,go.mod 发生了变化,如下:

module mymod

go 1.14

require rsc.io/quote v1.5.2

注意更新模块失败的问题:
由于网络的差别,需要添加代理。对于 Goland IDE 来说,我们打开 Preferences,在 Go > 选择 Go Modules(vgo) 在 proxy里写入 https://goproxy.cn 代理的地址,并勾选 Enable Go Modules。

image.png

要了解更多,请阅读 https://github.com/golang/go/wiki/Modules

END

相关文章

  • Go 学习笔记4 - Go Module 模块及依赖管理

    概述 在写代码过程中,总要引用其他的库而产生功能模块的依赖。Go 在 版本1.1 开始提供 Module 模块化的...

  • Go 包管理之module

    Go Module 使用 Go Module 是官方用来管理 package 依赖的工具, 1.11 新加的, 使...

  • 24.依赖管理及go module

    Go语言的依赖管理随着版本的更迭正逐渐完善起来。 windows开启go module:set GO111MODU...

  • GO语言学习之搭建环境

    1、下载Go:go语言中文网 2、开启Go module管理工具 GO111MODULE=off 禁用 go mo...

  • 3. Go依赖管理及go module使用

    3.1 简介 为什么需要依赖管理: 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致...

  • GO——学习笔记(五)

    上篇:GO——学习笔记(四) 下篇:GO——学习笔记(六) 示例代码——go_4 https://github.c...

  • GO Modules 使用

    旧项目迁移,打算使用GO Modules 作为依赖管理。 go版本 1.12 私人依赖包,如何处理 1. 创建模块...

  • 说一说go mod

    [toc] 说一说go mod 写在前面,我们要切换到go mod吗 go mod是官方力推的go模块依赖管理的工...

  • 2019-06-03+05 go语言的进阶学习 一

    一、熟悉Go语言运行环境、包管理工具(手动装一下Go环境并从零运行一个依赖第三方库的Go程序) go module...

  • Go 模块--开始使用 Go Modules

    Go的1.11和1.12版本包括对模块--新的Go依赖管理系统的初步支持,使依赖版本信息变得明确且更易于管理。这篇...

网友评论

      本文标题:Go 学习笔记4 - Go Module 模块及依赖管理

      本文链接:https://www.haomeiwen.com/subject/vitnehtx.html