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 会从$GOPATH
和vendor
文件夹寻找包。GO111MODULE=on
模块支持,go 会忽略$GOPATH
和vendor
文件夹,只根据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)管理详解(基于Go1.19)
史上最全的Go语言模块(Module)管理详解(基于Go1.19)