GoLand 2021.1 ヘルプ

Go モジュール

go get コマンドは、Go リポジトリのマスターブランチから依存関係の最新バージョンをダウンロードします。場合によっては、このアプローチは機能しません。例: サードパーティライブラリの異なるバージョンに依存する 2 つのプロジェクトがある場合。Go モジュール(旧称 vgo)を使用すると、プロジェクトごとに必要なライブラリバージョンをダウンロードしてインポートできます。Go モジュールの詳細については、blog.golang.org(英語) を参照してください。

Go モジュールを統合してプロジェクトを作成する

  1. ファイル | 新規 | プロジェクトを選択します。

  2. 新規プロジェクトページで、Go モジュールを選択します。

  3. ロケーションフィールドで、プロジェクトを保存するパスを指定します。

  4. GOROOT フィールドで、Go インストールの場所を指定します。通常、場所は自動的に定義されます。

    Go SDK の新しいバージョンを変更またはインストールするには、SDK の追加ボタンをクリックしてローカルを選択し、ハードドライブ上の Go SDK バージョンを選択するか、ダウンロードを選択して公式リポジトリから GoSDK をダウンロードします。Go SDK のインストールの詳細については、Go SDK のインストールを参照してください。

  5. GOROOT リストから、Go モジュールで使用する Go バージョンを選択します。

  6. 環境フィールドで、必要なすべての環境変数を指定します。例: GOPROXY 環境変数。環境変数の詳細については、環境変数のセクションを参照してください。

  7. (オプション)ベンダリングモードを使用するには、ベンダリングサポートを自動的に有効にするチェックボックスを選択します。自動ベンダリングモードは、Go 1.14 RC に組み込まれた Go 機能になったことに注意してください。ただし、この設定は以前の Go バージョン用に構成できます。ベンダリングの詳細については、ベンダリングを参照してください。

  8. 作成をクリックします。

    Integration with Go modules

Go モジュールの使用

プロジェクトツールウィンドウ(表示 | ツールウィンドウ | プロジェクト)に、Go モジュールが完全なインポートパスとともに表示されます。各 Go モジュールのバージョンは、区別しやすいように淡色表示されています。

o Module is shown in a dimmed font color

プロジェクトで Go モジュールを有効にする

新しい Go モジュールプロジェクトでは、すでに Go モジュールが有効になっています。Go モジュールプロジェクトを Github からプルした場合、Go モジュールを手動で有効にする必要があります。

  1. Ctrl+Alt+S を押して設定を開き、Go | Go モジュールに移動します。

  2. Go モジュールの統合を有効にするチェックボックスを選択します。

  3. OK をクリックします。

    Enable Go modules in a project

開いた Go ファイルからの依存関係を同期する

  1. Go モジュールの統合が有効になっていることを確認します。Go モジュール統合を有効にする方法の詳細については、プロジェクトで Go モジュールを有効にするを参照してください。

  2. import セクションで依存関係をクリックし、Alt+Enter を押して、<project_name> の依存関係を同期を選択します。

    Fetch dependencies

go.mod からの依存関係を同期する

失われた依存関係をフェッチして、未使用の依存関係を削除できます。

  1. Go モジュールの統合が有効になっていることを確認します。Go モジュール統合を有効にする方法の詳細については、プロジェクトで Go モジュールを有効にするを参照してください。

  2. プロジェクトツールウィンドウ(表示 | ツールウィンドウ | プロジェクト)で、MOD ファイルをダブルクリックします。

  3. 依存関係の宣言をクリックします。

  4. Alt+Enter を押して <project_name> の依存関係を同期を選択します。

    Fetch a source with Go modules

依存関係の図を作成する

go.mod ファイルには、プロジェクトの依存関係がリストされています。このファイルを使用して、依存関係の図を作成できます。

開始する前に、プロジェクトが GOROOT にあることを確認してください。

  1. プロジェクトで Go モジュールを有効にします。

  2. プロジェクト内の go.mod ファイルを右クリックし、ダイアグラム | ダイアグラムの表示を選択します。

    Create a diagram of dependencies

ベンダリングモードを切り替える

Go バージョン 1.13 以前ではベンダリングモードを切り替えることができます。Go 1.14 RC では、自動ベンダリングモードが組み込みの Go 機能になりました。

  1. Ctrl+Alt+S を押して設定を開き、Go | GOROOT に移動します。

  2. GOROOT リストから、Go バージョン 1.13 以前を選択します。

  3. Go モジュールメニュー項目をクリックします。

  4. ベンダリングサポートを自動的に有効にするチェックボックスをオフまたは選択して、OK をクリックします。

    Automatic vendoring mode in Go 1.13 and earlier versions
  1. プロジェクトツールウィンドウ(表示 | ツールウィンドウ | プロジェクト)で、go.mod ファイルをダブルクリックします。

  2. 依存関係インポートパスをクリックし、ナビゲート | 宣言または使用箇所 Ctrl+B をクリックします。

    Navigate from a dependency import path to package source files

環境変数

環境変数は、アプリケーション実行パラメーターを設定する方法を提供します。環境変数には、依存関係のダウンロードに使用するプロキシサーバーのアドレス(GOPROXY)、プライベートと見なされるパッケージの名前(GOPRIVATE)、およびその他の値を格納できます。GoLand では、環境変数に次のテンプレートを使用できます。

  • GOPROXY : 依存関係のダウンロードに使用する必要があるプロキシサーバーを定義します。これらのプロキシサーバーは、go コマンドをトリガーするときに使用されます。golang.org でのモジュールのダウンロードと検証(英語)の GOPROXY の詳細を参照してください。

  • GOSUMDB : チェックサムデータベースの名前を識別します。チェックサムデータベースは、go.sum ファイルのパッケージが信頼できることを確認します。golang.org でのモジュール認証の失敗(英語)の GOSUMDB の詳細を参照してください。

  • GOPRIVATE : プライベートと見なされるパッケージをリストします。go コマンドは、これらのパッケージをダウンロードして検証するときに、GOPRIVATE またはチェックサムデータベースを使用しません。golang.org での非公開モジュールのモジュール構成(英語)の GOPRIVATE の詳細を参照してください。

  • GONOPROXY : プライベートと見なされるパッケージをリストします。go コマンドは、これらのパッケージをダウンロードするときにプロキシを使用しません。GONOPROXY は GOPRIVATE をオーバーライドします。

  • GONOSUMDB : プライベートと見なされるパッケージをリストします。go コマンドは、これらのパッケージの検証中にチェックサムデータベースを使用しません。GOPRIVATE をオーバーライドします。

  • その他 : 導入したい環境変数。例: Go モジュールキャッシュのデフォルトの場所を $GOPATH/pkg/mod からユーザー定義の場所(たとえば、$WORK/modcache )に変更する GOMODCACHE 環境変数を導入できます。

プロジェクトに環境変数を導入する

  1. 新しいプロジェクトを作成するときは、新規プロジェクトウィンドウで Go モジュールをクリックします。

    既存のプロジェクトの場合、Ctrl+Alt+S を押して設定を開き、Go | Go モジュールに移動します。

  2. 環境フィールドで、フィールドの最後にある参照アイコンをクリックします。

  3. 環境変数ウィンドウで、追加ボタン( the Add button )をクリックし、追加するテンプレートを選択します。

    Introduce an environment variable in a new project

環境変数テンプレートに関する情報を取得する

  • 環境変数ウィンドウで、変数を説明するボタン( the Explain variable button )をクリックします。

    Introduce an environment variable in a new project

Go SDK のインストール

Go SDK のローカルコピーを選択する

Go SDK で提供されるフォルダーへのパスに bin および src フォルダーが含まれていることを確認してください。

  1. 新規プロジェクトダイアログで、Go モジュールを選択します。

  2. SDK の追加ボタンをクリックし、ローカルを選択します。

  3. ファイルブラウザーで、ハードドライブにある SDK のバージョンに移動します。

  4. 開くをクリックします。

Go SDK をダウンロードする

  1. 新規プロジェクトダイアログで、Go モジュールを選択します。

  2. SDK の追加ボタンをクリックしてダウンロードを選択します。

  3. バージョンリストから SDK のバージョンを選択します。

  4. ロケーションフィールドで、SDK のパスを指定します。ファイルブラウザーを使用するには、参照アイコン the Browse icon をクリックします。

  5. OK をクリックします。

生産性のヒント

go.mod ファイルのローカルパス内置換について通知する

変更をコミットする前に、GoLand は、go.mod ファイルのローカルパスを置き換えたという通知を表示できます。これは、これらの置換が誤ってコミットされた状況を回避できます。

  1. Ctrl+K を押します。

  2. コミットツールウィンドウ Alt+0 で、コミットオプションを表示アイコン( the Show Commit Options icon )をクリックし、コードを分析するチェックボックスを選択します。オプションのコミットの詳細については、変更をコミットして Git リポジトリにプッシュするを参照してください。

    Notifications about replacements of local paths in the go.mod file

関連ページ:

制約とベンダリングを構築する | GoLand

ビルド制約とベンダリングモードは、ビルドプロセスの微調整に使用できるツールです。ビルド制約を使用して、ファイルをパッケージに含めるルールを定義します。ベンダリングモードを有効にすると、プロジェクト内に格納されている依存関係パッケージでのみアプリケーションをビルドできます。そのため、パッケージに特定のファイルセットのみを含め、ローカルで変更またはパッチを適用した依存関係を使用できます。ビルド制約:ビルド制約またはビルドタグは、ファイルがパッケージに含まれる条件をリストする行コメントです。これらの

変更をコミットして Git リポジトリにプッシュする | GoLand

Git リポジトリに新しいファイルを追加した後、またはすでに Git バージョン管理下にある変更されたファイルを追加し、それらの現在の状態に満足したら、作業の結果を共有できます。これには、リポジトリのスナップショットをプロジェクト履歴に記録するためにローカルにコミットしてから、プッシュをリモートリポジトリにコミットして、他のユーザーが利用できるようにすることが含まれます。Git ユーザー名を設定する Git は、コミットを ID に関連付けるために、ユーザー名を知っている必要があります。ユーザー名...

新規プロジェクトを作成する | GoLand

複雑な依存関係管理を必要としないプロジェクトで作業する場合は、Go プロジェクトの作成を検討してください。それ以外の場合は、Go モジュールプロジェクトを作成するか、現在のプロジェクトで Go モジュールを有効にします。Go モジュールがない場合、ソースコードを GOPATH ディレクトリ(Go ワークスペース)に保存する必要があります。また、コマンドは依存パッケージを同じディレクトリにダウンロードするため、同じ依存パッケージの複数のバージョンをインストールすることはできません。Go プロジェクト...

Dep | GoLand

Dep 統合を使用してプロジェクトを作成する Dep との統合により、プロジェクトの依存関係を管理できます。dep ディストリビューションをインストールします。を選択します。新規プロジェクトページで、Dep を選択します。ロケーションフィールドで、プロジェクトを保存するパスを指定します。GOROOT フィールドで、Go インストールの場所を指定します。通常、場所は自動的に定義されます。Go SDK の新しいバージョンを変更またはインストールするには、SDK の追加ボタンをクリックしてローカルを選択し、ハ...