go get -d -v ./...
以下载grpc为例
grpc官方提供的下载命令是:
go get google.golang.org/grpc
因为无法访问,所以我们需要在$GOPATH/src目录下面创建一个google.golang.org的目录。
在github上找到对应的grpc的包,https://github.com/grpc/grpc-go
其实google.golang.org对应的就是https://github.com/grpc/grpc-go
然后我们进入到$GOPATH/src/google.golang.org这个目录。执行git命令
git clone --depth=1 https://github.com/grpc/grpc-go.git grpc
命令解析:
其中--depth=1 这个参数的意思是只克隆最新的commit分支。不加也行。
最后的grpc表示的是将克隆的文件存放到那个文件夹里面。
执行完上面的命令,我们就成功的将grpc的包下载到本地了。
go get google.golang.org/grpc
golang当中go get其实执行了两个操作,一个是git clone 另外一个go install。所以我们还要进入到$GOPATH/src/google.golang.org/grpc当中执行以下go install 。这个命令会在$GOPATH/pkg/google.golang.org/grpc下面生成一个grpc.a的外部包文件。用于和其他程序访问和编译。并且在go install的过程当中我们可以检查哪些相关依赖的包没有安装,可以使用相同的办法进行安装。
如何自动下载所有依赖包? 大部分情况下大家下载 Go 项目都是使用go get命令,它除了会下载指定的项目代码,还会去下载这个项目所依赖的所有项目。 但是有的时候我们的项目由于各种原因并不是通过go get下载的,是通过git clone下载的,这样代码下下来就没有依赖包了,没办法编译通过的。这样的话怎么办呢? go get -d -v ./... -d标志只下载代码包,不执行安装命令; -v打印详细日志和调试日志。这里加上这个标志会把每个下载的包都打印出来; ./...这个表示路径,代表当前目录下所有的文件。