【发布时间】:2017-12-05 01:37:32
【问题描述】:
您可以使用 go 工具构建所有代码,放置生成的二进制文件 在 $GOPATH/bin 中。
go install -v ./...
./... 在以下情况下做了什么:
go install -v ./...
【问题讨论】:
标签: linux bash go command-line
您可以使用 go 工具构建所有代码,放置生成的二进制文件 在 $GOPATH/bin 中。
go install -v ./...
./... 在以下情况下做了什么:
go install -v ./...
【问题讨论】:
标签: linux bash go command-line
这将安装在当前或子目录中找到的任何“main”包,
“子目录”:这就是./... 语法的含义。
它强制go install 不仅考虑当前文件夹/包('.'),还考虑子文件夹中的那些:“...”
参见“What is a sensible way to layout a Go project”:在库驱动开发中,您可以拥有多个包“main”:
将
main.go文件移出根目录允许您从库的角度构建应用程序。您的应用程序二进制文件只是您的应用程序库的客户端。有时您可能希望用户以多种方式进行交互,以便创建多个二进制文件。
例如,如果您有一个允许用户将数字相加的“加法器”包,您可能希望发布命令行版本和 Web 版本。
您可以通过像这样组织项目来轻松做到这一点:
adder/
adder.go
cmd/
adder/
main.go
adder-server/
main.go
用户可以使用省略号通过“go get”安装您的“adder”应用程序二进制文件:
$ go get github.com/benbjohnson/adder/...瞧,您的用户安装了“adder”和“adder-server”!
同样,go install -v ./... 也会安装“adder”和“adder-server”。
注意:-v 在编译时打印包的名称。
【讨论】: