使用 go dep 打包依赖项
Go package dependencies with go dep
我在同一个 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 中。而且我当然不希望这样,因为如果我更改 package1
,我需要先推送它以在 package2
中包含最新的更改。因为它使用的是 vendor 文件夹中的文件。
我正在导入完整路径:import "github.com/userX/go-project/pkg/package1"
我做错了什么?
环境变量:GOPATH="/Users/username/go"
vendor
文件夹在项目的根文件夹中,我正在使用 dep
(https://github.com/golang/dep) 来管理我的依赖项!
在我的供应商文件夹中,我可以找到我的第三方库以及我自己的项目。
├── 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, because for me it looks like only directory you have is a vendor
directory. And also take a look at vendor directories
我在同一个 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 中。而且我当然不希望这样,因为如果我更改 package1
,我需要先推送它以在 package2
中包含最新的更改。因为它使用的是 vendor 文件夹中的文件。
我正在导入完整路径:import "github.com/userX/go-project/pkg/package1"
我做错了什么?
环境变量:GOPATH="/Users/username/go"
vendor
文件夹在项目的根文件夹中,我正在使用 dep
(https://github.com/golang/dep) 来管理我的依赖项!
在我的供应商文件夹中,我可以找到我的第三方库以及我自己的项目。
├── 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, because for me it looks like only directory you have is a vendor
directory. And also take a look at vendor directories