According to Ethereum Developers' Guide:
You can build all code using the go tool, placing the resulting binary in $GOPATH/bin.
go install -v ./...
What does ./...
do in the context of:
go install -v ./...
That will install any "main
" packages found in the current or subdirectories,
"subdirectories": that is what the ./...
syntax means.
It forces go install
to consider not just the current folder/package ('.'), but also the ones in the sub-folders: "...
"
See "What is a sensible way to layout a Go project": you can have multiple packages "main
", in a library driven development:
Moving the
main.go
file out of your root allows you to build your application from the perspective of a library. Your application binary is simply a client of your application’s library.Sometimes you might want users to interact in multiple ways so you create multiple binaries.
For example, if you had an “adder” package that that let users add numbers together, you may want to release a command line version as well as a web version.
You can easily do this by organizing your project like this:
adder/
adder.go
cmd/
adder/
main.go
adder-server/
main.go
Users can install your “adder” application binaries with “go get” using an ellipsis:
$ go get github.com/benbjohnson/adder/...
And voila, your user has “adder” and “adder-server” installed!
Similarly, a go install -v ./...
would install “adder” and “adder-server” as well.
Note: the -v
print the names of packages as they are compiled.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With