標籤:方式 下載 intro 支援 儲存 The 變數 依賴 重要特性
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 介紹