IntelliJ IDEA 2020.3 ヘルプ

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

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

ビルド制約

ビルド制約またはビルドタグは、ファイルがパッケージに含まれる条件をリストする行コメントです。これらのタグは、オペレーティングシステム、アーキテクチャ、Go バージョン、コンパイラー、CGO サポート、またはターゲットシステムのその他の要件を記述することができます。次の例では、このファイルが、Linux、AMD64 アーキテクチャ、1.12 Go バージョン、および CGO サポートなしの要件を持つターゲットシステム用であることを宣言します。

Build constraints

IntelliJ IDEA は、これらの制約を使用して、検証、解決、シンボルの提案中に無視する必要があるファイルを決定できます。ファイルがターゲットシステムの要件を満たさない場合、IntelliJ IDEA は通知を表示します。

Notification about build constraints

プロジェクトのビルド制約を構成する

設定で定義するオプションは、プロジェクトのターゲットシステムを説明します。

  1. 設定を開き(Ctrl+Alt+S)、言語 & フレームワーク | Go | ビルドタグとベンダリングに移動します。

  2. ドロップダウンリストから、ターゲットシステムの期待値を選択します。カスタムタグがある場合は、カスタムタグフィールドで指定します(タグとしてスペースを区切りとして使用します)。

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

    Configure build constraints for your project

ベンダリング

ベンダリングモードを有効にして、プロジェクト内の vendor ディレクトリに格納されている依存関係パッケージのみを使用してアプリケーションを構築します。このモードでは、Go コマンドは go.mod の依存関係の説明を無視し、vendor ディレクトリに依存関係の正しいコピーがあると見なします。デフォルトでは、Go モジュールを使用すると、vendor ディレクトリはビルド中に無視されます。

Go 1.14 RC では、自動ベンダリングモードが組み込みの Go 機能になりました。Go 1.14 RC 以降、IntelliJ IDEA はデフォルトで自動ベンダリングモードも有効にします。この設定を無効にすることはできません。

Automatic vendoring mode in Go 1.14

以前のバージョンの Go では、ベンダリングサポートを自動的に有効にするチェックボックスを使用して自動ベンダリングを制御できます。チェックボックスを選択すると、自動ベンダリングが有効になります。vendor ディレクトリをモジュールに追加すると、IDE はそれを使用します。ディレクトリを削除すると、IntelliJ IDEA はグローバル Go モジュールキャッシュを使用します。

Automatic vendoring mode in Go 1.13 and earlier versions

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

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

Go 1.5 のベンダリングサポートを有効にする

Go 1.5 のベンダリングサポートを有効にすると、IntelliJ IDEA は Go ベンダリング実験の提案(英語)に従ってシンボルを解決および完了します。

  1. 設定(Ctrl+Alt+S)を開き、言語 & フレームワーク | Go | GOROOT に移動します。GOROOT が Go 1.5 を使用していることを確認してください。

  2. 言語 & フレームワーク | Go | ビルドタグとベンダリングにナビゲートします。

  3. ベンダリングを使用可能にするリストから、有効化を選択します。