【问题标题】:Go importing vendor dependencies issue when building a Go 1.7 project using govendor, dh-make-golang使用 govendor、dh-make-golang 构建 Go 1.7 项目时导入供应商依赖项问题
【发布时间】:2017-03-29 04:52:40
【问题描述】:

我一直在考虑将 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)

【问题讨论】:

    标签: go debian pbuilder govendor


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      看看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,它会为您完成所有工作。

      【讨论】:

      • 来自作者:"注意:goxc长期以来一直处于维护模式。自从Go1.5支持简单交叉编译后,这个工具就失去了很多价值......我是非常喜欢 go 用户,但我自己很长一段时间都不需要 goxc。” 所以,恕我直言,不要浪费时间检查它,我按照这个答案做了。 :-(
      猜你喜欢
      • 2019-08-28
      • 2019-05-04
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      相关资源
      最近更新 更多