Go 1.11 Module 介绍

Posted morya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go 1.11 Module 介绍相关的知识,希望对你有一定的参考价值。


title: "Go 1.11 Module"
date: 2018-10-26T23:50:56+08:00
draft: false
---

Go 1.11 Module 介绍

go 1.11 发布了一种新的模式来管理go程序的依赖库,这种方式不同于vendor模型。

它主要提供下面几个重要特性:

  • 更方便的脱离GOPATH来工作(我理解是,逐渐淡化GOPATH,GOPATH一度给入门golang的新人留下很多坑)
  • 使用$GOPATH/pkg/mod来存储go mod的缓存文件,提高go get速度
  • 可选的$GOPROXY和goproxy交互机制
    • 提供公司级或局域网级私有go mod服务器
    • golang.org/x/text等老大难第三方依赖库提供缓存和提速

启用 go mod

为启用go mod,需要配置GO111MODULE环境变量:

  • GO111MODULE=off 无模块支持,go 会从 $GOPATHvendor 文件夹寻找包。
  • GO111MODULE=on 模块支持,go 会忽略 $GOPATHvendor 文件夹,只根据 go.mod 下载依赖。
  • GO111MODULE=auto$GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。

使用GOPROXY

此处有一个开源版本的 goproxy.io

和它的github主页 github.com/goproxyio

自建GOPROXY server

Athens is a Server for Your Go Packages

项目地址 https://github.com/gomods/athens

Athens可以用来在公司内部建立自己的私有go mod服务器,
或者在公网建立一个对外公开的GOPROXY server

参考:

以上是关于Go 1.11 Module 介绍的主要内容,如果未能解决你的问题,请参考以下文章

go module

使用Go Module构建项目

史上最全的Go语言模块(Module)管理详解(基于Go1.19)

史上最全的Go语言模块(Module)管理详解(基于Go1.19)

史上最全的Go语言模块(Module)管理详解(基于Go1.19)

史上最全的Go语言模块(Module)管理详解(基于Go1.19)