目录
快速上手
我们可以通过go list xx
来使用go list.该指令会返回xx package的规范名字
% cd $GOPATH/src/code.google.com/p/go.crypto/ssh
% go list
code.google.com/p/go.crypto/ssh
% go list github.com/juju/juju
github.com/juju/juju
但是go list
的要点在于-f
选项.该选项允许我们按照指定格式输出我们关心的内容.
事实上,使用go list xx
等价于go list -f '{
{ .ImportPath }}' xx
一些常用指令
go list
的具体用法如下
go list [-f format] [-json] [-m] [list flags] [build flags] [packages]
其中-f中包含了大量的可配置选项,具体可以看这里, 我们在这里会简单的列举一些常用的功能
查找编译会涉及到的所有文件
通常用于条件编译中检查有哪些文件会被分别编译
-
使用方法
go list -f '{ { .GoFiles }}' xx
-
实例
% env GOOS=darwin go list -f '{ { .GoFiles }}' github.com/pkg/term [term.go term_bsd.go] % env GOOS=linux go list -f '{ { .GoFiles }}' github.com/pkg/term [term.go term_linux.go]
查找直接依赖以及所有依赖(包括间接)
-
使用方法
-
检查所有直接依赖
go list -f '{ { .Imports }}' xxx
-
检查所有直接和间接依赖
go list -f
-