Go 1.11 Module 介紹
阿新 • • 發佈:2018-10-27
自己 vendor ext tle gopath get 根目錄 pkg 三方
啟用
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
。
參考:
- Introduction to Go Modules
- Playing with Go module proxies
- Athens
Go 1.11 Module 介紹