這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
最近再玩golang,在研究如何匯入自己的模組的時候很是頭疼。基本golang槽糕的設計——project既要設定$GOPATH又對項目結構有一定的要求(缺少一定的自由)(當然golang糟糕的設計遠不止這方面,越是深入瞭解越是討厭)。google好久才知道如何配置。網上blog裡要麼是同一篇文章各種轉載(他喵的還不註明),要麼不夠清晰,各種嘗試後終於成功,記錄如下:
進入終端輸入命令
mkdir -p goproject/src/goproject cd goprojecttouch installcd src/goprojecttouch main.go cd ..mkdir testcd test && touch test.go
此時cd 到goproject應該是如下:
install src
cd到src應該如下
goproject
完整分類樹如下
goproject
| ++++ install.sh
|++++ src
|++++|++++| goproject
|++++|++++|++++| main.go
|++++|++++|test
|++++|++++|++++|test.go
~/goproject%: cat install
#!/usr/bin/env bashif [ ! -f install ]; then echo 'install must be run within its container folder' 1>&2 exit 1fiCURDIR=`pwd`OLDGOPATH="$GOPATH"export GOPATH="$CURDIR"gofmt -w srcgo install goproject<F2>export GOPATH="$OLDGOPATH"echo 'finished'
~/goproject%:cat src/goproject/test/test.go
package testimport "fmt"func Test() { fmt.Println("this is test package")}
~/goproject%:cat src/goproject/main.go
package mainimport testfunc main() { test.Test()}
至此大功造成!!!
build項目
sh ./install
執行上一條命令之後的目錄如下:
~/goproject%: bin/goproject~/goproject%: this is test package