如何使用 `dep` 将带有内部包的 Go 应用程序部署到 Heroku

How to deploy Go apps with internal package to Heroku using `dep`

我正在使用 Heroku 的 Golang buildpack 部署具有以下结构的简单 Web 应用程序

my-app/
    handler/
        user.go
        session.go
    vendor/
        github.com/
        golang.org/
    main.go
    Gopkg.toml
    Gopkg.lock

在我的主文件中,我导入了我自己的 handler

import (
    "fmt"
    "net/http"
    "my-app/handler"
)

由于以下错误,Heroku 无法 运行 安装到我的项目中:

----> Using go1.9.3
----> Running: go install -v -tags heroku . 
----> cannot find package "my-app/handler" in any of: ... 

我可以 运行 go installmy-app 在本地没有任何问题。在我看来,heroku 无法识别我的内部项目包。

我正在使用 dep,我的 Gopkg.toml 中有以下配置:

[metadata.heroku]
root-package = "github.com/mygithub/my-app"
go-version = "go1.9.3"
install = ["."]
ensure = "false"

使用内部包部署 Go 应用程序还需要做什么?谢谢。

尝试将根包设置为不带域的项目名称

[metadata.heroku] root-package = "my-app" go-version = "go1.9.2" install = [ "./..." ]