返回
Featured image of post Go - module

Go - module

Golang - 併發/封裝/測試集一身的瘋狂

Go mod 是 go1.11 後釋出的管理套件的工具且 go1.13 成為default使用。

go1.11 前專案使用 GOPATH

當時若需引用其他專需將 GOPATH 指定到所撰寫的專案底下

go env -w GOPATH=$(pwd)

## 錯誤處理,若發生下方這樣
## warning: go env -w GOPATH=... does not override conflicting OS environment variable
## .zshrc / .bashrc 請手動新增
## export GOPATH=$HOME/<當時的專案>
## export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

資料結構為

$(pwd)
 |- main.go        # go 入口
 |- src/
   |- trytry/      # package trytry
      |- trytry.go

go1.11 後專案使用 go mod

官方手把手教學 - https://golang.org/doc/code#Command
以 NodeJS 來舉例,go mod 有點像是 package.json

# github: go mod init github.com/youruser/yourrepo
go mod init github.com/hifounder/learnforgo

注意:
預設 go mod 會抓 proxy.golang.org 最新資料,若使用到 private repo 就要另外設定 GOPRIVATE,且記得 git 需登入有權限之帳號
go env -w GOPRIVATE=github.com/*****
git config --global url."https://$USERNAME:[email protected]".insteadOf "https://github.com"

資料結構為

$(pwd)
 |- main.go        # go 入口
 |- go.mod         # go mod
 |- trytry/        # package trytry
  |- trytry.go
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus