新建golang项目目录,应该如何规划才合理?

创建Golang项目,如何规划项目的目录结构?

是以下这样的结构吗?:

root(即新项目的根目录)
    -bin
    -pkg
    -src
    --main.go

是否每次一个新项目都是这样的结构?如果是的话,是否每个项目依赖的包,其实不是share的,是独立存储于项目的?

以前我的做法是

root
    -bin
    -pkg
    -src
    --github.com
    --golang.org
    --新项目1
    ---main.go
    --新项目2
    ---main.go

共用了github.com包与golang.org官方包。

应该以哪种方式创建目录好?

阅读 6.7k
2 个回答

个人使用第二种,即你原来使用的方法。

因为:
同一个包只下载一次
项目引用包路径是固定的,即github.com/foo/bar

这种方式缺点是使用了哪些包,并不能直接使用git管理,然而也不应该用git管理依赖及依赖的版本,而是应该使用go自己的包管理工具来在项目被clone的时候重新下载此项目的依赖,目前我在使用godep。

而优点是,项目只关心项目的代码,而不必关心使用了哪些包,和包的版本变化。

1/ 项目放在任何地方,软链接到$GOPATH/src/; 这样需要到$GOPATH/src/yourproj 下面来运行和测试
2/ 项目依赖用go的包管理工具; 我用的gvt

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题