Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go在使用dh make golang Govendo构建Go 1.7项目时导入供应商依赖性问题_Go_Debian_Pbuilder_Govendor - Fatal编程技术网

Go在使用dh make golang Govendo构建Go 1.7项目时导入供应商依赖性问题

Go在使用dh make golang Govendo构建Go 1.7项目时导入供应商依赖性问题,go,debian,pbuilder,govendor,Go,Debian,Pbuilder,Govendor,我一直在考虑将go项目构建到debian包中 我已经研究过了,在我的存储库中设置了一个漂亮而闪亮的debian文件夹。当我尝试使用gbpbuildpackage--gitpbuilder时,由于找不到我的所有依赖项,它出错了。当dh make golang从我的项目的git存储库复制所有内容时,它似乎忽略了供应商文件夹,我使用govendor,所以我的所有依赖项都在那里 如何解决此依赖性问题并将项目正确构建为.deb包?作为参考,我得到的错误是: src/github.com/project/p

我一直在考虑将go项目构建到debian包中

我已经研究过了,在我的存储库中设置了一个漂亮而闪亮的
debian
文件夹。当我尝试使用
gbpbuildpackage--gitpbuilder
时,由于找不到我的所有依赖项,它出错了。当dh make golang从我的项目的git存储库复制所有内容时,它似乎忽略了
供应商
文件夹,我使用
govendor
,所以我的所有依赖项都在那里

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

src/github.com/project/project/project.go:15:2:在以下任何一个文件中找不到包“google.golang.org/grpc/grpclog”:
/usr/lib/go-1.7/src/google.golang.org/grpc/grpclog(来自$GOROOT)
/tmp/project/obj-x86_64-linux-gnu/src/google.golang.org/grpc/grpclog(来自$GOPATH)

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

您只需将
.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
中关于导入供应商依赖关系的一个bug。今天刚修好

作者写道:“注意:goxc一直处于维护模式。自从Go1.5支持简单的交叉编译以来,这个工具失去了很多价值……我是一个非常好的go用户,但我自己已经很久不需要goxc了。”所以,IMHO,不要浪费你的时间检查它,我是按照这个答案做的:-(