🎃
【Golang】$GOPATHの外にプロジェクトを作りパッケージをインポートする
見出し
Go moduleを導入しGOPATHの呪縛から解き放たれよう
はじめに
想定読者
Goを触り始めGOPATH以外のディレクトリでも開発をしたい人
なんとなくGOPATH,Go moduleについて知りたい人
目的
以前のGoについてふんわり理解する
現在のGoで使われているGo moduleを理解する
GOPATH以外のディレクトリでパッケージのインポートや開発を行う
以前のGoについて
バージョン1.10まで、Goは標準ライブラリ以外のパッケージの管理、ビルドを$GOPATH配下のディレクトリで行っていた。パッケージが全てGOPATHにあったため、GOPATH配下で開発しなければリモート、ローカル共にパッケージをインポートできない状態にあった。
問題点
好きなディレクトリで開発できない
Go moduleの登場
バージョン1.11からmoduleモードが実装された。これがgo moduleと呼ばれるものであり、これによってGOPATH配下でなくても開発ができるようになった。バージョン1.13からはGOPATHモードでの開発は非推奨になり、go moduleがデフォルトになった。
Go moduleを導入してプロジェクト開発を行う
目標
好きなディレクトリでプロジェクトを作成しローカルパッケージ(ローカルのgoファイル)のインポート、リモートパッケージのインポートを行う。
OS不問。
使用するパッケージ
Lorca :GolangでGUIアプリを作れるライブラリ。今回はウインドウを出すだけ。
terminalでgo.modを作成し、リモートパッケージをgetする
terminal
go mod init testPkg
go get github.com/zserge/lorca
main.goでローカルとリモートパッケージを利用する
./main.go
package main
import (
"testPkg/hoge"
"github.com/zserge/lorca"
)
func main(){
hoge.TestFunc()
ui, _ := lorca.New("", "", 480, 320)
defer ui.Close()
<-ui.Done()
}
ローカルのhogeパッケージを作成する
./hoge/hoge.go
package hoge
func TestFunc(){
println("hello")
}
実行
go run .
実行結果:コンソールに"hello"が表示され新しいウインドウが出現する。
参考
Discussion