简体   繁体   English

使用go dep进行Go软件包依赖

[英]Go package dependencies with go dep

I have the following project structure in the same github repository: 我在同一个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

And for some reason my project is in folder vendor as a dependency. 由于某种原因,我的项目作为依赖项存在于文件夹供应商中。 And ofc I don't want that because if I change package1 I need to push it first to have the latest changes inside package2 . 而且,我不想这样做,因为如果我更改package1 ,则需要先将其推送以使package2具有最新更改。 Because it's using files inside vendor folder. 因为它正在使用供应商文件夹中的文件。

I am importing with full path: import "github.com/userX/go-project/pkg/package1" 我正在导入完整路径: import "github.com/userX/go-project/pkg/package1"

What I am doing wrong? 我做错了什么?

ENV VARS: GOPATH="/Users/username/go" ENV VARS: GOPATH="/Users/username/go"

vendor folder is in the root folder of the project and I am using dep ( https://github.com/golang/dep ) to manage my dependencies! vendor文件夹位于项目的根文件夹中,我正在使用dephttps://github.com/golang/dep )来管理我的依赖项!

Inside my vendor folder I can find my third party libraries and also my own project. 在供应商文件夹中,我可以找到第三方库以及自己的项目。

├── 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

EDIT: Updated my file structure after dep ensure --update 编辑:在dep ensure --update之后更新了我的文件结构

Basically my steps: 1. go get -u github.com/golang/dep/cmd/dep 2. dep init 3. dep ensure --update 基本上是我的步骤:1.转到-u github.com/golang/dep/cmd/dep 2. dep init 3. dep确保--update

Gopkg.lock contains info about my own project: Gopkg.lock包含有关我自己的项目的信息:

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

Looks like you should take a look at project structure , because for me it looks like only directory you have is a vendor directory. 看起来您应该看一下项目结构 ,因为对我来说,您似乎只有一个目录是vendor目录。 And also take a look at vendor directories 并查看供应商目录

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM