首页 > 后端开发 > Golang > 如何在 Go 模块中嵌入构建时命令依赖项(例如 `github.com/aprice/embed/cmd/embed`)?

如何在 Go 模块中嵌入构建时命令依赖项(例如 `github.com/aprice/embed/cmd/embed`)?

Linda Hamilton
发布: 2024-11-26 02:31:13
原创
412 人浏览过

How to Embed a Build-Time Command Dependency (e.g., `github.com/aprice/embed/cmd/embed`) in Go Modules?

在 Go 模块中嵌入命令依赖

简介

Go 模块,Go 1.11 中引入,为 Go 提供依赖管理项目。除了运行时依赖项之外,用户可能需要在构建过程中使用 go 模块,特别是在 gogenerate 命令期间运行的工具。

问题

我如何合并特定的构建依赖项,例如 github.com/aprice/embed/cmd/embed,并从特定目录执行它? go 是否有适合此任务的工具?

答案

使用以下方法,您可以在 Go 模块中嵌入命令依赖项:

创建“工具”包

  1. 在项目中创建一个tools目录:

    mkdir -p internal/tools
    登录后复制
  2. 将tools包放置在该目录下,如下图:
// internal/tools/tools.go
// +build tools

package tools

import (
    _ "github.com/UnnoTed/fileb0x"
)
登录后复制
  1. 请注意,构建标记指定文件何时应编译并可以根据您的项目要求进行自定义。

更新 go.mod

  1. 运行 go mod tidy 来更新您的 go.mod 文件并包含依赖项。
  2. 如果失败,请尝试执行其他命令,例如 go get、gogenerate 或 go安装。

供应

  1. 执行 go modvendor 下载 go.mod 中列出的所有依赖项的源代码。
  2. 修改您的构建命令(例如,go build、gogenerate)以包含 -mod=vendor 标志。这可以确保您的项目使用供应商的依赖项。

附加说明

  • 如果您遇到错误,指出您的程序不是可导入的包,创建一个工具包并导入依赖项。
  • 供应对于利用模块缓存和避免依赖关系至关重要冲突。

以上是如何在 Go 模块中嵌入构建时命令依赖项(例如 `github.com/aprice/embed/cmd/embed`)?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板