dep是 Go 官方的依赖管理工具,现在已经比较成熟了,我个人也使用了一段时间,觉得很不错。
没有 glide 那么多 bug,比 godep 更加智能。
但是今天总算是发现它一个弊端了,dep 不会对二级目录进行拉取,默认要求所有 .go file 都放在顶级目录。
例如 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 还是可以的…… 但并不是很想这样做。
有疑问加站长微信联系(非本文作者)
