ホームページ >バックエンド開発 >Golang >プロジェクトを中断せずに Go モジュールを使用して Go ツールをインストールするにはどうすればよいですか?

プロジェクトを中断せずに Go モジュールを使用して Go ツールをインストールするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-08 04:49:13166ブラウズ

How Can I Install Go Tools Using Go Modules Without Breaking My Project?

go モジュール: Go ツールのインストール

依存関係管理システムとして go モジュールを使用する場合、次の構文を使用してツールをインストールするときに問題が発生する可能性があります。

go get -u github.com/go-critic/go-critic/...

これにより、 error:

go: cannot find main module; see 'go help modules'

これを解決するには、次の 2 つのシナリオを検討してください:

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

場合go.mod 内の依存関係としてツールを追跡するつもりはありません。いくつかのツールがあります。オプション:

  1. go.mod のないディレクトリ (/tmp など) に移動し、そこで go get コマンドを実行します。
  2. gobin コマンドを使用すると、インストールが可能になります。または、現在のモジュールの依存関係に影響を与えずにバイナリを実行します。 gobin install github.com/some/package のような構文を使用してインストールします。

詳細については、この関連回答を参照してください。これには、Go 1.11 のソリューションと Go 1.14 の今後のオプションが含まれています。

ケース 2: 追跡ツール依存関係

go.mod 内の依存関係としてツールを明示的に追跡したい場合は、次の手順に従います。

  1. 別のパッケージで tools.go ファイルを作成します。 .
  2. //go:build tools ビルド タグを追加します。例:
//go:build tools
// +build tools

package tools

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

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

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

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