[dep](https://github.com/golang/dep)是 Go 官方的依赖管理工具,现在已经比较成熟了,我个人也使用了一段时间,觉得很不错。
没有 glide 那么多 bug,比 godep 更加智能。
但是今天总算是发现它一个弊端了,dep 不会对二级目录进行拉取,默认要求所有 .go file 都放在顶级目录。
例如 [gin-swagger](https://github.com/swaggo/gin-swagger) 这个项目在使用的时候分别要导入顶级包和子包:
````
import "github.com/swaggo/gin-swagger" // gin-swagger middleware
import "github.com/swaggo/gin-swagger/swaggerFiles" // swagger embed files
````
如果你拉取 `github.com/swaggo/gin-swagger` 依赖的话,会发现 vendor 里边的 gin-swagger 目录并不存在 swaggerFiles 这个目录。如果你对 `github.com/swaggo/gin-swagger/swaggerFiles` 单独进行拉取的话,那么 父级根目录 gin-swagger 下的文件会被删除,导致缺失 gin-swagger 包。
有没有使用 dep 的,最终如何解决这个问题呢?如果对涉及 gin-swagger 的项目单独使用 go get 还是可以的…… 但并不是很想这样做。
有疑问加站长微信联系(非本文作者)