Go 1.6 中的供应商
Vendoring in Go 1.6
我已经阅读了尽可能多的文档和 Whosebug 文章,但我在使用 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`
...无济于事。我完全错过了什么吗?任何建议表示赞赏。
我建议你阅读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
我已经阅读了尽可能多的文档和 Whosebug 文章,但我在使用 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`
...无济于事。我完全错过了什么吗?任何建议表示赞赏。
我建议你阅读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