一尘不染

Go 1.6中的供应商

go

我已经找到了尽可能多的文档和StackOverflow文章,但是使用Go 1.6中的新供应商功能无法导入。

这是我与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`

…无济于事。我完全想念什么吗?任何建议表示赞赏。


阅读 182

收藏
2020-07-02

共1个答案

一尘不染

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

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

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