golang项目结构日记

来源:互联网 发布:淘宝直邮物流信息造假 编辑:程序博客网 时间:2024/06/10 00:20

最近再玩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
0 0