標籤:方式 下載 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 介紹