ホームページ >バックエンド開発 >Golang >プロジェクトの「go.mod」に影響を与えずに、Go モジュールを使用して Go ツールをインストールするにはどうすればよいですか?

プロジェクトの「go.mod」に影響を与えずに、Go モジュールを使用して Go ツールをインストールするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-03 16:33:12855ブラウズ

How Can I Install Go Tools Using Go Modules Without Affecting My Project's `go.mod`?

Go モジュールを使用して Go ツールをインストールする

依存関係管理システムとして Go モジュールを使用する場合、インストールしようとすると問題が発生する可能性があります。ツール。この記事では、 go get -u github.com/go-critic/go-critic/... を実行すると、「go: メイン モジュールが見つかりません。「go help modules」を参照してください。」というエラー メッセージが表示されるようなシナリオについて説明します。

ケース 1: go.mod を変更せずにインストールする

現在のバージョンを変更せずにツールをインストールしたい場合go.mod を使用する場合は、次の手順を実行することを検討してください。

  1. go.mod ファイルが存在しないディレクトリ (/tmp など) に移動します。
  2. go get コマンドを実行して、ツールをインストールします。例: $ cd /tmp && go get github.com/some/[email protected].

代わりに、gobin を使用することもできます。これは、柔軟性が高く、go を変更せずにツールをインストールできるモジュール対応コマンドです。 mod.

ケース 2: ツールの依存関係の追跡go.mod

ただし、go.mod 内のバージョン化された依存関係としてツールを追跡したい場合は、「モジュールのツールの依存関係を追跡するにはどうすればよいですか?」で概説されている手順に従うことができます。 」モジュール Wiki の FAQ。

これを実現するには、別のパッケージで tools.go ファイルを作成し、//go:build tools ビルド タグを含めます。例:

//go:build tools
// +build tools

package tools

import (
    _ "golang.org/x/tools/cmd/stringer"
)

import ステートメントにより、go コマンドがツールのバージョン情報を go.mod ファイルに記録します。一方、 // ビルド ツールのビルド制約により、通常のビルドではツールがインポートされなくなります。

以上がプロジェクトの「go.mod」に影響を与えずに、Go モジュールを使用して Go ツールをインストールするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。