新闻详情

新闻详情

首页 / 资讯中心 / 详情

go list command

发布时间:2026/10/1 14:50:37来源:尧图网络
go list command
文章目录1.简介2.基本语法2.1 格式2.2 常用包路径写法2.3 默认输出2.4 结构化输出2.5 模块模式格式3. 选项3.1 输出控制3.2 范围控制3.3 模块模式3.4 常用模板字段4. 示例5. 常见问题5.1 ./... 与 ... 有什么区别5.2 模板中的 {{}} 需要转义吗5.3 -e 会掩盖真正的错误吗5.4 如何只查看某个包的直接依赖6. 小结参考文献1.简介go list的核心作用是以可编程的方式输出 Go 包和模块的信息。它的典型用途包括确认某个包是否存在列出项目的所有依赖查看依赖是否有可用更新导出包或模块的元数据供脚本处理与go build、go run不同go list不编译代码只做解析和查询因此速度极快非常适合嵌入脚本或 CI 流程。go list有两种工作模式模式触发方式操作对象包模式默认包package模块模式加-m模块module2.基本语法2.1 格式go list[-f format][-json][-m][list flags][build flags][packages]不带参数时go list列出当前目录的包信息。2.2 常用包路径写法写法含义go list当前目录的包go list ./...当前项目及所有子目录的包go list ...工作区所有包go list hash标准库hash包go list github.com/gin-gonic/gin外部包2.3 默认输出最简单的输出是导入路径$ go list github.com/gin-gonic/gin github.com/gin-gonic/gin2.4 结构化输出go list的真正价值在于结构化输出有两种方式JSON 格式go list-jsonhash输出包的所有元数据包括Dir、ImportPath、Name、GoFiles、Imports、Deps、Doc等字段。Go 模板格式go list-f{{.ImportPath}}: {{.Dir}}hash输出hash: /usr/local/go/src/hash2.5 模块模式格式加-m后操作对象变为模块go list-mall# 列出所有模块go list-m-jsongin# 以 JSON 输出某模块信息3. 选项3.1 输出控制选项作用-json以 JSON 格式输出-f用 Go 模板自定义输出格式3.2 范围控制选项作用-deps同时列出所有依赖-test包含测试相关文件信息-e遇到错误也继续处理不中断3.3 模块模式选项作用-m切换到模块模式-u配合-m检查可用更新-versions配合-m列出所有可用版本3.4 常用模板字段字段含义{{.ImportPath}}导入路径{{.Name}}包名{{.Dir}}包所在目录{{.GoFiles}}Go 源文件列表{{.Imports}}直接依赖{{.Deps}}所有依赖含间接各选项的具体用法与组合方式见第 4 章示例。|{{.Doc}}| 包文档摘要 |join是 Go 模板内置函数用于把切片拼成字符串例如{{join .Deps \n}}。4. 示例1确认包是否存在。go list github.com/go-sql-driver/mysql存在则输出导入路径不存在则报错。在脚本中判断ifgo list github.com/foo/bar/dev/null21;thenecho包存在elseecho包不存在fi2查看模块的可用版本列表。go list-m-versionsmod-path比如查看 gin 框架的可用版本。go list-m-versionsgithub.com/gin-gonic/gin github.com/gin-gonic/gin v1.1.1 v1.1.2 v1.1.3 v1.1.4 v1.3.0 v1.4.0 v1.5.0 v1.6.0 v1.6.1 v1.6.2 v1.6.3 v1.7.0 v1.7.1 v1.7.2 v1.7.3 v1.7.4 v1.7.5 v1.7.6 v1.7.7 v1.8.0 v1.8.1 v1.8.2 v1.9.0 v1.9.1 v1.10.0 v1.10.1 v1.11.0 v1.12.03列出项目的所有直接依赖。go list-f{{join .Imports \n}}./...|sort-u4列出某个包的所有依赖。go list-f{{join .Deps \n}}hash5导出依赖树为 JSON。go list-json-deps./...deps.json后续可用jq等工具分析。6列出所有模块go list-mall列出所有模块指的是列出当前项目的主模块以及它依赖的所有模块包括直接依赖和间接依赖。这里的-m是关键它把 go list 的操作对象从“包package”切换成“模块module”。all 则是一个特殊模式表示“主模块 全部依赖模块”。7检查依赖更新go list-m-uall输出中会标注可用更新github.com/gin-gonic/gin v1.10.0 [v1.10.1]8格式化输出依赖更新。go list-m-u-f{{.Path}} {{.Version}} - {{.Update.Version}}all输出github.com/gin-gonic/gin v1.10.0 - v1.10.19查看某模块的详细信息go list-m-jsongithub.com/gin-gonic/gin输出模块的Path、Version、Time、Dir、GoMod等字段。10找出依赖了某个包的所有包go list-f{{.ImportPath}} {{join .Deps }}./...|grepgolang.org/x/sync11宽容模式处理错误go list-e-json./...5. 常见问题5.1./...与...有什么区别./...匹配当前目录及其子目录下的包...匹配当前工作区workspace内的所有包范围更大。在单模块项目中两者通常等价但在多模块工作区中差异明显建议按需选择。5.2 模板中的{{}}需要转义吗在 shell 中直接使用-f {{.ImportPath}}时单引号可避免 shell 展开。若在脚本中拼接模板注意$等字符的转义。5.3-e会掩盖真正的错误吗-e让go list遇到无法解析的包时继续输出适合排查不稳定项目。但正常开发中建议先去掉-e让错误直接暴露便于定位问题。5.4 如何只查看某个包的直接依赖用{{.Imports}}直接依赖而非{{.Deps}}含间接依赖例如go list-f{{join .Imports \n}}hash6. 小结go list的核心价值是把 Go 的包和模块信息变成可编程的数据包模式go list pkg查询包信息配合-json或-f输出结构化数据模块模式go list -m切换视角管理依赖、检查更新脚本友好配合grep、jq、sort做自动化分析不编译代码只解析元数据速度快适合 CI 和脚本掌握go list你就能用命令行快速回答“这个包在哪”“依赖了什么”“有没有更新”等问题无需打开 IDE 或手动翻go.mod。参考文献Go 官方文档go listGo Modules Referencepkg.go.dev 包查询
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

TBOX信息安全系列9设计篇-安全启动方案 2026/10/1 17:03:10

TBOX信息安全系列9设计篇-安全启动方案

黑客攻击TBOX,最狠的一招不是破解通信——而是直接刷入恶意固件。一旦固件被换,你的TBOX就变成了黑客的"傀儡",之前所有的通信加密、访问控制全白搭。安全启动(Secure Boot)就是守固件这道门的第一把锁&…

阅读更多 →
Claude Code实测:从9圈费曼积分到科研工作流自动化 2026/10/1 17:03:10

Claude Code实测:从9圈费曼积分到科研工作流自动化

标题里那句"刷新物理学世界纪录"放在媒介稿上确实抓眼球,但作为一个常年把AI工具用在正经计算上的人,我更关心的是:这次不是摆个Demo就完事,而是一整套可以被复用的工作流。你看了新闻可能会觉得,这种基于杨…

阅读更多 →
基于OpenCV的图像处理与轮廓检测实现回形针高效计数 2026/10/1 17:03:10

基于OpenCV的图像处理与轮廓检测实现回形针高效计数

1. 项目概述与核心价值1.1 一个看似简单实则经典的视觉识别任务“paperclip”这个项目听起来特别不起眼——不就是识别回形针吗?但真正上手做一遍你就会发现,这个小小的目标物几乎把计算机视觉里的经典问题全演了一遍:小目标检测、类内差异、…

阅读更多 →
I2C从设备设计:时钟延展与死锁恢复全攻略 2026/10/1 17:03:09

I2C从设备设计:时钟延展与死锁恢复全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
n8n常用节点详解:文件操作、数据整形与代码执行实战 2026/10/1 17:03:03

n8n常用节点详解:文件操作、数据整形与代码执行实战

做自动化这行,我遇到最多的问题不是"怎么搭一个惊天动地的工作流",而是"怎么把一个文件从A点挪到B点,中间顺手改个格式、加个字段"。n8n 的节点体系恰好就是为这类事设计的,从文件操作到代码执行,…

阅读更多 →
Magenta 论文精读专栏指南:六篇生成模型经典论文的深度解读 2026/10/1 17:03:03

Magenta 论文精读专栏指南:六篇生成模型经典论文的深度解读

人工智能深度学习音频媒体生成计算机视觉 【免费下载链接】magenta Magenta: Music and Art Generation with Machine Intelligence 项目地址: https://gitcode.com/gh_mirrors/ma/magenta 点击查看 免费下载 Magenta 项目(Music and Art Generation wi…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉