【问题标题】:How to get all dependencies (modules) used?如何使用所有依赖项(模块)?
【发布时间】:2021-12-31 17:08:54
【问题描述】:

我尝试获取我的项目使用的所有依赖项。

我查看了go.mod 文件,虽然它只包含我添加的依赖项/模块,而不是我的依赖项中的依赖项。

查看go.sum 文件,这看起来更有希望,但后来我注意到它包含多个重复项。即使我只使用一个版本的依赖项。举个例子:

github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=

如何获得仅包含所有积极使用的依赖项/模块的列表?

【问题讨论】:

  • 您可以使用一个固定版本的包,但您的导入有自己的 go.mod 文件,这些文件可能使用同一包的不同版本。

标签: go dependencies go-modules


【解决方案1】:

您对这两个文件是正确的,从技术上讲,您可以通过在 go.mod 文件中添加替换语句来清理 go.sum。但是,您(和您的团队)始终保持清洁并不可靠。

在我看来,获取您要查找的列表的最佳方式是go list -m all(或go list --json -m all 以获取json 响应)。它将递归地列出您项目中的所有依赖项。但过滤掉未使用的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    相关资源
    最近更新 更多