goland 构建约束与vendoring

背景
用goland导入某项目源码之后,报“golang vendor import Build constraints exclude all Go files in…”错误,经查阅资料,现梳理如下:

构建约束条件和vendoring模式是可用于微调构建过程的工具。借助构建约束,您可以定义是否将文件包含在包中的规则之中。启用vendoring模式后,仅使用存储在项目中的依赖项包来构建应用程序。因此,您只能在包中包括一组特定的文件,并使用在本地修改或打补丁的依赖项。

构建约束
构建约束或标记是一行注释,其中列出了将文件包含在包中的条件。这些标签可以描述操作系统,项目结构,Go版本,编译器,CGO支持或目标项目的任何其他要求。在以下示例中,我们声明此文件适用于具有以下要求的目标系统:Linux,AMD64体系结构,1.12 Go版本,并且不支持CGO。
goland 构建约束与vendoring_第1张图片

构建约束
GoLand可以使用这些约束来确定在验证,解析和符号建议期间必须忽略哪些文件。如果文件不满足目标系统的要求,GoLand将显示一条通知。
goland 构建约束与vendoring_第2张图片

配置项目的构建约束
您在设置中定义的选项描述了项目的目标系统。

  • 打开设置(⌘,)并导航到Go | 建立标签和供应商。
  • 从下拉列表中,选择目标系统的期望值。如果有任何自定义标签,请在“ 自定义标签”字段中指定它们(使用标签之间的空格作为分隔符)。
  • 单击确定。
    goland 构建约束与vendoring_第3张图片

Vendoring
启用供应Vendoring式后,仅使用存储在项目vendor目录下的依赖项包来构建应用程序。在这种模式下,Go命令将忽略go.mod 并假设 vendor目录保存了正确的依赖关系副本。默认情况下,当您使用Go modules 模式时,目录在构建过程中被忽略。

vendoring模式下需要将项目放置在$GOPATH/src目录下

在Go 1.14 RC中,自动vendoring模式已成为内置的Go功能。从Go 1.14 RC开始,GoLand默认情况下还启用自动vendoring模式。您不能禁用此设置。
goland 构建约束与vendoring_第4张图片

对于早期的Go版本,您可以使用自动启用vendoring支持复选框来控制自动vendor。选中复选框后,将启用自动供应。因此,如果您添加vendor目录到模块,IDE将使用它。如果删除目录,GoLand将使用全局Go模块缓存。
goland 构建约束与vendoring_第5张图片

启用供应商模式
您只能在Go版本1.13和更早版本中切换vendoring模式。在Go 1.14 RC中,自动vendoring模式已成为内置的Go功能。

通过按⌘,Go modules(vgo)项目打开设置,导航到Go | 转到模块(vgo)。

  • 选择自动启用供应商支持复选框,然后单击确定。
创建新的Go模块(vgo)项目时,请 在“ 新建项目”对话框中选中“ 自动启用vendoring支持”复选框。

启用Go 1.5的供应商支持
如果为Go 1.5启用了供应商支持,则GoLand会根据Go Vendoring Experiment Proposal解析并完成符号。

  • 打开设置(⌘,)并导航到Go | GOROOT。确保GOROOT使用Go 1.5。
  • 导航到| 建立标签和供应商。
  • 从“ 启用供应商”列表中,选择“ 启用”。
    goland 构建约束与vendoring_第6张图片

goland 构建约束与vendoring_第7张图片

你可能感兴趣的:(golang)