使用 govendor、dh-make-golang 构建 Go 1.7 项目时 Go 导入供应商依赖项问题

Go importing vendor dependencies issue when building a Go 1.7 project using govendor, dh-make-golang

我一直在研究将 go 项目构建到 debian 包中。

我查看了 dh-make-golang 并在我的存储库中设置了一个漂亮而闪亮的 debian 文件夹。当我尝试使用 gbp buildpackage --git-pbuilder 时,由于未找到我的所有依赖项,它会出错。 dh-make-golang 似乎在从我项目的 git 存储库复制所有内容时忽略了 vendor 文件夹,我使用 govendor 所以我所有的依赖项都在那里。

如何解决此依赖性问题并将项目正确构建为 .deb 包?作为参考,我得到的错误是:

src/github.com/project/project/project.go:15:2: cannot find package "google.golang.org/grpc/grpclog" in any of: /usr/lib/go-1.7/src/google.golang.org/grpc/grpclog (from $GOROOT) /tmp/project/obj-x86_64-linux-gnu/src/google.golang.org/grpc/grpclog (from $GOPATH)

看看 goxc - 它可以为您做到这一点!

你只需要添加一个 .goxc.json 到你的根目录,看起来像这样

{
    "AppName": "my_app",
    "ArtifactsDest": "downloads",
    "Tasks": [
        "interpolate-source"
        "deb",
    ],
    "BuildConstraints": "linux,amd64 windows,amd64 darwin,amd64 linux,arm",
    "ResourcesInclude": "INSTALL*,README*,LICENSE*,config/*,static/*,templates/*",
    "PackageVersion": "0.9.3",
    "TaskSettings": {
        "deb": {
            "metadata": {
                "description": "my app",
                "maintainer": "me",
                "maintainer-email": "me@example.com"
            },
            "metadata-deb": {
                "Homepage": "https://example.com"
            },
            "other-mapped-files": {
                "/": "debian/",
                "/usr/share/something/static": "static/",
                "/usr/share/something/templates": "templates/"
            }
        }
    },
    "ConfigVersion": "0.9"
}

然后 运行 goxc 它会为您完成所有工作。

问题是 dh-make-golang 中关于导入供应商依赖项的错误。今天刚修好。

https://github.com/Debian/dh-make-golang/issues/46