Go 包与 go dep 的依赖关系

标签 go godeps

我在同一个 github 存储库中有以下项目结构:

https://github.com/userX/go-project/cmd/server/main.go
https://github.com/userX/go-project/pkg/package1
https://github.com/userX/go-project/pkg/package2
https://github.com/userX/go-project/pkg/package2
https://github.com/userX/go-project/Gopkg.toml

由于某种原因,我的项目作为依赖项位于文件夹 vendor 中。 ofc 我不希望这样,因为如果我更改 package1,我需要先推送它才能在 package2 中获得最新的更改。因为它使用 vendor 文件夹内的文件。

我使用完整路径导入:import "github.com/userX/go-project/pkg/package1"

我做错了什么?

环境变量:GOPATH="/Users/username/go"

vendor 文件夹位于项目的根文件夹中,我正在使用 dep ( https://github.com/golang/dep ) 来管理我的依赖项!

在我的 vendor 文件夹中,我可以找到我的第三方库以及我自己的项目。

├── Dockerfile
├── Gopkg.lock
├── Gopkg.toml
├── LICENSE
├── Makefile
├── README.md
├── cmd
│   ├── server
│   │   └── main.go
│   └── cli
│       └── main.go
├── docker-compose.yml
├── pkg
│   ├── package1
│   │   ├── file.go
│   ├── package2
│   │   └── file.go
└── vendor
    └── github.com
        ├── julienschmidt
        │   └── httprouter
        │       ├── LICENSE
        └── userX
            └── go-project
                ├── Dockerfile
                ├── Gopkg.lock
                ├── Gopkg.toml
                ├── LICENSE
                ├── Makefile
                ├── README.md
                ├── cmd
                │   ├── server
                │   │   └── main.go
                │   └── cli
                │       └── main.go
                ├── docker-compose.yml
                └── pkg
                    ├── package1
                    │   ├── file.go
                    ├── pacakge2
                        └── file.go

编辑:在dep Ensure --update之后更新了我的文件结构

基本上我的步骤: 1. go get -u github.com/golang/dep/cmd/dep 2. 初始化 3. dep 确保 --update

Gopkg.lock 包含有关我自己的项目的信息:

[[projects]]
  branch = "master"
  name = "github.com/userX/go-project"
  packages = ["pkg/package1","pkg/package2"]
  revision = "560d3aaasdas53562c3eb083252e54ef8ee468bea74ba"

最佳答案

看来你应该看看 project structure ,因为对我来说,您拥有的唯一目录似乎是 vendor 目录。另请查看 vendor directories

关于Go 包与 go dep 的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47552572/

相关文章:

Golang 服务/daos 实现

go - 在 Travis CI 自动构建 Go 的提示版本上使用 Godep 时出错

go - 不能再执行任何go命令

go - 在异常期间在 golang 中运行测试用例

json - 如何使用 Go 读取或写入谷歌存储桶(非公共(public)访问)中的 json 文件

go - 如何将包添加到 godeps

Godeps开发流程?

go - 运行 dep 时出错确保 : Grouped write of manifest, 锁和 vendor :无法统计 VerifyVendor 声称存在的文件

datetime - 如何从国家/地区获取时区

performance - go 的加速问题