我正在尝试将用 Go 编写的旧 Google App Engine(标准环境)项目迁移到运行时 1.12。自 2017 年底以来我就没有碰过它,从那以后似乎发生了很多变化。我已经能够解决一些问题,但由于我有一些外部依赖项,所以我无法部署代码。尝试部署时控制台输出的相关部分d:\src\go\src\data-axe>go env GOPATHd:\src\god:\src\go\src\data-axe>gcloud app deploy --no-promote...Error type: BuildError.Error message: 2019/09/27 19:10:09 Your app is not on your GOPATH, this build may fail.2019/09/27 19:10:10 Building from Go source in /tmp/staging/srv, with main package at ./...2019/09/27 19:10:10 Building /tmp/staging/srv, saving to /tmp/staging/usr/local/bin/start2019/09/27 19:10:11 Wrote build output to /builder/outputs/output2019/09/27 19:10:11 Failed to build app: Your app is not on your GOPATH, please move it there and try again.... err=exit status 1, out=srv/main.go:6:2: cannot find package "github.com/microcosm-cc/bluemonday" in any of:...正如上面的代码片段所示,我的 GOPATH 设置为d:\src\go,我的应用程序位于d:\src\go\src\data-axe,并且我正在使用的 Bluemonday 位于 ,d:\src\go\src\github.com\microcosm-cc\bluemonday所以据我所知,所有这些都在我的 GOPATH 中。用于指定依赖项的App Engine 文档说如果您的应用程序位于 GOPATH 上的目录中,App Engine 会分析、复制并上传来自 GOPATH 的导入。此方法支持供应商目录。这里一定有什么我不明白的地方。我的代码和我在 GOPATH 中使用的库都有,但当我尝试部署时,App Engine 似乎没有拾取并上传我的导入。我的 main.go 中的导入使用绝对路径,正如文档所述:package mainimport ( "fmt" "net/http" "github.com/microcosm-cc/bluemonday" "strings" "log" "os")我究竟做错了什么?
1 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
我设法用两种不同的方式解决这个问题。
第一个是将我的项目复制到 $GOPATH 之外,并启用 go 模块,当我这样做时,我能够成功部署我的应用程序,包括它的所有依赖项。
我也成功地在没有 go 模块的情况下解决了问题。事实证明,很久没有碰过的不仅仅是我的项目。我的 Google Cloud SDK 也严重过时了。更新后,gcloud components update
我能够正常部署我的应用程序,没有任何问题。
- 1 回答
- 0 关注
- 78 浏览
添加回答
举报
0/150
提交
取消