登录
首页 >  Golang >  Go问答

部署 gcloud 时未遇到第三方依赖

来源:stackoverflow

时间:2024-03-11 22:54:27 280浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《部署 gcloud 时未遇到第三方依赖》,涉及到,有需要的可以收藏一下

问题内容

我通过命令 govendor init 创建并 govendor fetch "github.com/gorilla/mux" 项目中的供应商目录。

但是,在 gcloud gcloud 应用deploy 中执行部署时,出现以下错误,找不到 github.com/gorilla/mux

错误:(gcloud.app.deploy)错误响应:[9] 部署包含无法编译的文件:编译失败: /work_dir/main.go:5:5:找不到导入:“github.com/gorilla/mux”

部署工作缺少什么?我的 gcloud 套餐是免费的

app.yaml

service: api
runtime: go
api_version: go1

handlers:
- url: /sample
  script: _go_app

ma​​in.go

package main

import (
    "encoding/json"
    "github.com/gorilla/mux"
    "net/http"
    "google.golang.org/appengine"
)

type Foo struct {
    Text string `json:"text"`
}

func GetInfo(w http.ResponseWriter, r *http.Request) {
    json.NewEncoder(w).Encode(Foo{"hello"})
}

func init(){
    r := mux.NewRouter()
    r.HandleFunc("/sample", GetInfo)
}

func main() {
    appengine.Main()
}

解决方案


如果您想使用供应商版本的 mux 包,请确保 sample-api 文件位于 Go workspace 中。

如果不需要供应商,则删除供应商目录,运行 go get github.com/gorilla/mux,然后部署您的应用程序。在这种情况下,您的应用程序文件不需要位于工作区中。

除了这些与构建相关的问题之外,您还必须使用 http.DefaultServeMux 注册 gorilla mux。

func init(){
    r := mux.NewRouter()
    r.HandleFunc("/sample", GetInfo)
    http.Handle("/", r)
}

今天关于《部署 gcloud 时未遇到第三方依赖》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>