构建约束和供应商
最后修改时间:2023 年 8 月 23 日构建约束和供应商模式是可用于微调构建过程的工具。通过构建约束,您可以定义文件包含在包中的规则。启用供应商模式后,您只需使用存储在项目内的依赖包来构建应用程序。因此,您可以仅在包中包含一组特定的文件,并使用您在本地修改或修补的依赖项。
建立约束条件
笔记
根据Bug 抵抗构建约束提案,
//+build
将被替换为//go:build
. 从 Go 版本 1.16 到版本 1.18,会有一个从//+build
到语法的过渡期。//go:build
在 Go 1.16 版本中,您可以使用旧语法或同时使用两种语法。
构建约束或构建标签是行注释,列出了文件包含在包中的条件。这些标签可以描述操作系统、架构、Go 版本、编译器、cgo 支持或目标系统的任何其他要求。在下面的示例中,我们声明该文件适用于具有以下要求的目标系统:Linux、AMD64 架构、Go 版本 1.12、不支持 cgo。
IntelliJ IDEA 可以使用这些约束来决定在验证、解析和符号建议期间必须忽略哪些文件。如果文件不满足目标系统的要求,IntelliJ IDEA 将显示通知。例如,屏幕截图中的以下条件将与“为项目配置构建约束”过程中的设置冲突。
为您的项目配置构建约束
您在设置中定义的选项描述了项目的目标系统。
打开设置 ( ) 并导航至语言和框架 | 去 | 构建标签。CtrlAlt0S
从下拉列表中,选择目标系统的预期值。如果您有任何自定义标签,请在“自定义标签”字段中指定它们(使用标签之间的空格作为分隔符)。
单击“确定”。
使用多个条件来构建约束
由于引入了用于构建约束的新语法,请考虑下表,其中列出了使用多个条件时两种语法之间的差异。
|
|
---|---|
逗号(作为逻辑 And)和空格(作为逻辑 Or) |
&& 运算符(逻辑与)和 || 运算符(逻辑或) |
售货
启用供应商模式后,您只需使用存储在项目内供应商目录下的依赖包来构建应用程序。在此模式下,Go 命令忽略go.mod中的依赖项描述,并假设供应商目录保存依赖项的正确副本。默认情况下,当您使用 Go 模块时,在构建过程中会忽略供应商目录。
在 Go 1.14 RC 中,自动供应模式成为 Go 的内置功能。从 Go 1.14 RC 开始,IntelliJ IDEA 也默认启用自动供应模式。您可以禁用每个项目的供应商,例如,当您有一个包含另一种语言使用的供应商文件夹的 monorepo 时。
您可以使用自动启用供应商支持复选框来控制自动供应。选中该复选框后,将启用自动销售。因此,如果您将供应商目录添加到模块中,IDE 就会使用它。如果删除该目录,IntelliJ IDEA 将使用全局 Go 模块缓存。
切换销售模式
按打开设置并导航至语言和框架 | 去 | 转到模块。CtrlAlt0S
清除或选择“自动启用供应商支持”复选框,然后单击“确定”。
感谢您的反馈意见!