go - Go 1.6 中的 vendor

标签 go vendor

我已经阅读了尽可能多的文档和 StackOverflow 文章,但我在使用 Go 1.6 中的新 vendor 功能进行导入时运气不佳。

这是我与 Goji 放在一起的示例项目去测试。目录结构如下:

.
└── src
    ├── main.go
    └── vendor
        └── github.com
            └── zenazn
                └── goji
                    ├── LICENSE
                    ├── README.md
                    ├── bind
                    ├── default.go
                    ├── example
                    ├── goji.go
                    ├── graceful
                    ├── serve.go
                    ├── serve_appengine.go
                    └── web

而项目中唯一的文件main.go是这样的:

package main

import (
    "fmt"
    "net/http"

    "github.com/zenazn/goji"
    "github.com/zenazn/goji/web"
)

func hello(c web.C, w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, %s!", c.URLParams["name"])
}

func main() {
    goji.Get("/hello/:name", hello)
    goji.Serve()
}

我的环境变量是这样的:

export GOPATH=~/.go
export GOBIN=$GOPATH/bin
export PATH=$PATH:/usr/local/opt/go/libexec/bin:$GOBIN

我尝试了最简单的构建命令,但没有成功:

go run ./src/main.go
go build ./src/main.go

我也尝试过构建:

$GOPATH=`pwd`

...无济于事。我完全错过了什么吗?任何建议表示赞赏。

最佳答案

我建议你阅读https://golang.org/doc/code.html .它需要一两天的时间来消化,但在您理解了 go 工具如何与源代码和 GOPATH 一起工作之后,使用它们真的很容易。

回到你的问题。要构建一个简单的 go 程序,您需要:

  • 在 $GOPATH/src 下创建目录,例如mkdir $GOPATH/src/myprogram
  • 将所有源代码(包括 vendor 目录)放在那里:$GOPATH/src/myprogram/main.go, $GOPATH/src/myprogram/vendor.
  • 运行 go install myprogram 构建您的应用程序并将生成的 myprogram 二进制文件放入 $GOPATH/bin/myprogram

关于go - Go 1.6 中的 vendor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35999046/

相关文章:

go - 所有的 goroutines 都睡着了——死锁! - - - - 错误

logging - Golang : Does logging into file using log. Println 负责并发访问

php - array_count_values 我想回显一个特定的键值

linux - 在 USB 的 Linux 内核空间驱动程序中运行供应商命令

go - 使用go mod时如何将本地依赖添加到vendor

javascript - Foundation Framework Sticky Topbar 不粘

json - golang - 从 http 请求返回 json 字符串的库/包

windows - Go程序访问线程环境 block 时出现panic

go - 模型.go : res declared and not used

android - 如何通过 adb 获取 Android 设备的供应商 ID?