如何获取所有依赖项(模块)?
How to get all dependencies (modules) used?
我尝试获取我的项目使用的所有依赖项。
我查看了 go.mod
文件,虽然它只包含我添加的 dependencies/modules,而不是我的依赖项中的依赖项。
查看 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=
如何获得仅包含所有活跃使用的列表dependencies/modules?
关于这 2 个文件,您是对的,从技术上讲,您可以通过向 go.mod 文件添加替换语句来清理 go.sum。但是,您(和您的团队)始终保持清洁并不可靠。
在我看来,获得所需列表的最佳方式是 go list -m all
(或 go list --json -m all
以获得 json 响应)。它会递归地列出你项目中的所有依赖项。但是过滤掉不用的。
我尝试获取我的项目使用的所有依赖项。
我查看了 go.mod
文件,虽然它只包含我添加的 dependencies/modules,而不是我的依赖项中的依赖项。
查看 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=
如何获得仅包含所有活跃使用的列表dependencies/modules?
关于这 2 个文件,您是对的,从技术上讲,您可以通过向 go.mod 文件添加替换语句来清理 go.sum。但是,您(和您的团队)始终保持清洁并不可靠。
在我看来,获得所需列表的最佳方式是 go list -m all
(或 go list --json -m all
以获得 json 响应)。它会递归地列出你项目中的所有依赖项。但是过滤掉不用的。