lifelong learning & practice makes perfect
用于列出关于包/module的各类信息
在module-aware模式,会在当前路径下寻找go.mod
可以用go list {当前路径}/…
# module-aware模式
GO111MODULE=on go list ./...
#gopath模式
GO111MODULE=off go list ./...
也可以使用导入路径加…列出该路径下所有包导入路径
GO111MODULE=on go list github.com/yiGmMk/leetcode/...
GO111MODULE=off go list github.com/yiGmMk/leetcode/...
表示独立可执行程序的顶层包
代码Go语言自身项目仓库下的src/cmd下的所有包及internal包
代表标准库所有包的集合
列出module信息
-f格式字符串采用go template包的语法,go list等价于
go list -f ''
支持的字段来自runtime下的PackagePublic
// $GOROOT/src/cmd/go/internal/pkg.go (go 1.14)
type PackagePublic struct {
Dir string `json:",omitempty"` // 包含包源码的目录
ImportPath string `json:",omitempty"` // dir下包的导入路径
ImportComment string `json:",omitempty"` // 包声明语句后面的注释中的路径
Name string `json:",omitempty"` // 包名
Doc string `json:",omitempty"` // 包文档字符串
Target string `json:",omitempty"` // 该软件包的安装目标(可以是可执行的)
...
TestGoFiles []string `json:",omitempty"` // 包中的_test.go文件
TestImports []string `json:",omitempty"` // TestGoFiles导入的包
XTestGoFiles []string `json:",omitempty"` // 包外的_test.go
XTestImports []string `json:",omitempty"` // XTestGoFiles导入的包
}
# 输出包相关信息
go list -f ''
go list -json
go list -m -u all