首頁 >後端開發 >Golang >如何在 Go 模組中嵌入建置時命令依賴項(例如 `github.com/aprice/embed/cmd/embed`)?

如何在 Go 模組中嵌入建置時命令依賴項(例如 `github.com/aprice/embed/cmd/embed`)?

Linda Hamilton
Linda Hamilton原創
2024-11-26 02:31:13374瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn