ホームページ > バックエンド開発 > Golang > ビルド時のコマンドの依存関係 (例: `github.com/aprice/embed/cmd/embed`) を Go モジュールに埋め込む方法は?

ビルド時のコマンドの依存関係 (例: `github.com/aprice/embed/cmd/embed`) を Go モジュールに埋め込む方法は?

Linda Hamilton
リリース: 2024-11-26 02:31:13
オリジナル
373 人が閲覧しました

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

Go モジュールへのコマンドの依存関係の埋め込み

概要

Go 1.11 で導入された Go モジュールは、Go の依存関係管理を提供します。プロジェクト。実行時の依存関係に加えて、ユーザーはビルド プロセス中に go モジュール、特に go generated コマンド中に実行されるツールを利用する必要がある場合があります。

質問

どのように組み込むことができますか? github.com/aprice/embed/cmd/embed などの特定のビルド依存関係を指定し、特定のディレクトリから実行しますか?このタスクに適したツールを入手してください?

回答

次の方法を使用して、Go モジュールにコマンドの依存関係を埋め込むことができます:

「ツール」の作成パッケージ

  1. プロジェクト内にツール ディレクトリを作成します。

    mkdir -p internal/tools
    ログイン後にコピー
  2. 次に示すように、このディレクトリ内にツール パッケージを配置します。
// internal/tools/tools.go
// +build tools

package tools

import (
    _ "github.com/UnnoTed/fileb0x"
)
ログイン後にコピー
  1. ビルド タグは、いつファイルはコンパイルされている必要があり、プロジェクトの要件に合わせてカスタマイズできます。

go.mod の更新

  1. go を更新するには go mod tiny を実行します。 mod ファイルを作成し、依存関係を含めます。
  2. これが失敗した場合は、go get、gogenerate、などの追加のコマンドを実行してみてください。

ベンダー

  1. go modvendor を実行して、go.mod にリストされているすべての依存関係のソース コードをダウンロードします。
  2. ビルド コマンド (go build、gogenerate など) を変更して、-mod=vendor フラグを含めます。これにより、プロジェクトでベンダーの依存関係が使用されるようになります。

追加メモ

  • プログラムがインポート可能なパッケージではないことを示すエラーが発生した場合、ツール パッケージを作成し、そこに依存関係をインポートします。
  • モジュール キャッシュを利用して依存関係を回避するには、ベンダー処理が重要です。競合します。

以上がビルド時のコマンドの依存関係 (例: `github.com/aprice/embed/cmd/embed`) を Go モジュールに埋め込む方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート