Nic*_*las 1 package go dependency-management godeps aws-sdk-go
当使用添加新的依赖项时,dep ensure -add <package>我会看到dep添加了软件包的完整存储库,而不仅仅是我需要的部分。
比如我加AWS-SDK-去和dep ensure文件放87MB到我的文件夹的供应商,即使我只使用AWS秘密Manager服务。
要解决此问题,您需要定义[prune]设置,这些设置确定哪些文件和目录可以被认为是不必要的,并因此自动从供应商/中删除。
当前提供以下选项:
unused-packages 指示应删除目录中未出现在包导入图中的文件non-go 修剪Go不使用的文件go-tests 修剪Go测试文件出于谨慎考虑,dep会非强制性地保留可能具有法律意义的文件。
默认情况下,修剪选项是禁用的。但是,生成过Gopkg.toml孔dep init将在根级别添加行以启用go-tests和unused-packages修剪选项。
[prune]
go-tests = true
unused-packages = true
Run Code Online (Sandbox Code Playgroud)
可以为每个项目定义相同的修剪选项。需要一个附加的名称字段,并且与[[constraint]]和一样[[override]],应该是源根目录,而不仅仅是任何导入路径。
[prune]
non-go = true
[[prune.project]]
name = "github.com/project/name"
go-tests = true
non-go = false
Run Code Online (Sandbox Code Playgroud)
几乎所有项目都可以,而无需设置任何特定于项目的规则,并且无需全局启用以下修剪规则:
[prune]
unused-packages = true
go-tests = true
Run Code Online (Sandbox Code Playgroud)
通常也可以安全设置non-go = true。但是,由于dep只有一个明确的模型来确定Go文件所扮演的角色,并且非Go文件必然不在该模型之内,因此没有可比的安全性一般定义。