GOROOT および GOPATH
Go ツールはソースコードの特定のレイアウトを期待している: GOROOT と GOPATH は、このレイアウトを定義する環境変数です。
GOROOT は、Go SDK の場所を定義する変数です。異なる Go バージョンを使用する予定がない限り、この変数を変更する必要はありません。
Go 開発では、GOPATH 変数は、Unix ではデフォルトで $HOME/go
、Windows ではデフォルトで %USERPROFILE%\go
に設定され、いくつかの目的に使用されます。
バイナリは go install によって
$GOBIN
にインストールされ、$GOBIN
はデフォルトで$GOPATH/bin
にインストールされます。モジュールは go get によって
$GOMODCACHE
にキャッシュされ、デフォルトでは $GOPATH/pkg/mod になります。チェックサムデータベースの状態は、go get によって
$GOPATH/pkg/sumdb
にキャッシュされます。
GOPATH 変数の詳細については、go コマンドのドキュメント(英語)を参照してください。
Go モジュールに先行する GOPATH 開発モードの概念は、現在非推奨です。Go モジュールより前は、GOPATH はバイナリとコンパイル済みパッケージのインストール、および指定されたパスへのソースコードのダウンロードに使用されていました。GOPATH を使用した開発の詳細については、go.dev の GOPATH 開発モード(英語)を参照してください。
Go SDK を 1.16 Beta 1 から 1.20.1 に変更する次のビデオを検討してください。
GOROOT
GOROOT の設定
GOROOT の現在の値を確認するには、設定(Ctrl+Alt+S)を開いて
に移動します。ドロップダウンリストをクリックして、Go バージョンを選択します。使用可能な Go バージョンがない場合は、SDK の追加ボタンをクリックして Go バージョンをダウンロードするか、Go SDK のローカルコピーへのパスを選択します。
Go SDK のローカルコピーを選択する
Go SDK で提供されるフォルダーへのパスに bin および src フォルダーが含まれていることを確認してください。
設定を開き(Ctrl+Alt+S)、
に移動します。SDK の追加ボタン
をクリックして、ローカルを選択します。
ファイルブラウザーで、ハードドライブにある SDK のバージョンに移動します。
開くをクリックします。
Go SDK をダウンロードする
設定を開き(Ctrl+Alt+S)、
に移動します。SDK の追加ボタン(
)をクリックして、ダウンロードを選択します。
バージョンリストから SDK のバージョンを選択します。
ロケーションフィールドで、SDK のパスを指定します。ファイルブラウザーを使用するには、参照アイコン
をクリックします。
「OK」をクリックして「Go SDK のダウンロード」ダイアログを閉じます。
GOROOT ページで適用または OK をクリックすると、GoLand は GoSDK のダウンロードと解凍を開始します。
asdf の使用
asdf は、さまざまなプログラミング言語とユーティリティの複数のバージョンを管理するツールです。これにより、プロジェクトごとに異なる Go バージョンを切り替えることができます。また、asdf は、システム全体のデフォルトバージョンを設定する asdf global
と、特定のディレクトリのバージョンを設定する asdf local
という異なるスコープを設定できます。
GoLand は、複数のバージョン ( asdf local golang 1.21.0 1.20.8
など) の指定を含む asdf local
および asdf global
コマンドをサポートします。
プロジェクトの asdf Go バージョンを選択する
Ctrl+Alt+S を押して設定を開き、
に移動します。リストから必要な Go バージョンを選択します。
GOPATH
異なるスコープの GOPATH の構成
次のスコープに対して GOPATH を構成できます。
グローバル GOPATH : 設定は、GoLand の特定のインストールのすべてのプロジェクトに適用されます。
プロジェクト GOPATH : 設定は現在のプロジェクトにのみ適用されます。
モジュール GOPATH : 設定は 1 つのモジュールにのみ適用されます。モジュールには、プロジェクト用に構成されたものとは異なる SDK を含めることができます。また、特定のテクノロジーやフレームワークを搭載することもできます。
![設定の種類 Types of settings](https://resources.jetbrains.com/help/img/idea/2024.1/settings-types.png)
3 つのスコープすべてを指定した場合、GoLand は最も狭いスコープを最初に選択します。
設定を開き(Ctrl+Alt+S)、
に移動します。適用するスコープに応じて、対応するセクション(グローバル GOPATH、プロジェクト GOPATH、モジュール GOPATH)を選択し、追加ボタン
をクリックします。
ファイルブラウザーで、GOPATH に関連付けるディレクトリに移動します。
次の例では、スコープごとに異なる GOPATH ディレクトリを使用するように構成しました。GoLand は、構成されている最も狭いスコープであるモジュール GOPATH を使用します。
関連ページ:
![](https://pleiades.io/icons/goland.png)
Go テンプレート
Go には独自のテンプレートエンジンがあり、2 つのパッケージに分かれています。text/template と html/template。これらのパッケージは機能が似ていますが、html/template ではユーザーがコードインジェクションに対して安全な HTML コードを生成できるため、Web ページやメールでの使用に適しています。また、これらのパッケージは、Helm や Kubernetes パッケージマネージャーの構成など、他のアプリケーションのコーディング支援も提供する Go テンプレートとアプ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/go_example_build_constraints.png)
ビルド制約とベンダリング
ビルド制約とベンダリングモードは、ビルドプロセスを微調整するために使用できるツールです。ビルド制約では、パッケージに含めるファイルを決定するルールを定義します。ベンダリングモードを有効にすると、プロジェクト内に保存されている依存関係パッケージのみを使用してアプリケーションがビルドされるようになります。このアプローチにより、パッケージに特定のファイルセットを含め、ローカルで変更またはパッチを適用した依存関係を使用できます。ビルド制約:ビルド制約 (ビルドタグとも呼ばれる) は、パッケージにファイ...