Go モジュールの概要
モジュールは Go 1.11 の新しい実験機能で、vgo の進化に基づいた新しいパッケージ管理ツールです。
Go 1.11 より前のパッケージ管理ツールはすべて PATH またはベンダー ディレクトリに基づいており、異なるバージョンへの依存関係の問題をうまく解決できませんでした。モジュールは、GOPATH の外にある新しいパッケージ管理方法です。モジュールを使用すると、GOPATH から完全に独立します。
注: Go モジュールには Go バージョン 1.11 以降が必要です
使用ガイド
例
1. GOPATH の外にディレクトリを作成します
$ mkdir -p /tmp/scratchpad/hello $ cd /tmp/scratchpad/hello
2. モジュールの初期化
$ go mod init github.com/you/hello go: creating new go.mod: module github.com/you/hello
3. hello.go
package main import ( "fmt" "rsc.io/quote" ) func main() { fmt.Println(quote.Hello()) }
を編集します4. コンパイルして実行
$ go build $ ./hello Hello, world.
注: go build は依存関係パッケージを自動的にダウンロードしますが、golang パッケージは.org/x/... などのファイルはファイアウォールを回避する必要があります。GOPROXY 環境変数を追加してプロキシを設定できます:
export GOPROXY=https://goproxy.io
この時点で、go.mod ファイルは自動的に更新され、プロジェクトに必要な依存関係と、対応するバージョン番号が含まれています
$ cat go.mod module github.com/you/hello require rsc.io/quote v1.5.2
go.mod に加えて、go は特定のモジュール バージョンの予想されるハッシュ値を含む go.sum というファイルも管理します。 ##
cat go.sum golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c h1:qgOY6WgZOaTkIIMiVjBQcw93ERBE4m30iBm00nkL0i8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= rsc.io/quote v1.5.2 h1:w5fcysjrx7yqtD/aO+QwRjYZOKnaM9Uh2b40tElTs3Y= rsc.io/quote v1.5.2/go.mod h1:LzX7hefJvL54yjefDEDHNONDjII0t9xZLPXsUe+TKr0= rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=go は go.sum ファイルを使用して、これらのモジュールの今後のダウンロードが最初のダウンロードと同じであることを保証し、プロジェクトが依存するモジュールに予期しない変更が発生しないようにします。
go.mod と go.sum の両方をバージョン管理にチェックインする必要があります。
毎日のワークフロー
一般的な日常のワークフローは次のとおりです: 必要に応じて .go コードにインポート ステートメントを追加します 標準コマンド (go build や go test など) は、必要に応じて新しい依存関係を自動的に追加します (go.mod を更新し、新しい依存関係をダウンロードします)特定のバージョンが必要な場合は、go get を使用して特定のバージョンを指定できます。 go get foo@v1.2.3、go get foo@master、go get foo@e3702bed2 など、go.mod ファイルを直接編集します。一般的に使用されるコマンド:go list -m all プロジェクト内のすべての直接および間接的な依存関係を表示します。go mod tiny 未使用の依存関係をクリアし、その他の必要な依存関係を追加します。go mod Vendor 依存関係をベンダー ディレクトリにコピーします。詳細はこちらgo 言語の知識がある場合は、PHP 中国語 Web サイトの
go 言語チュートリアル 列に注意してください。
以上がGo モジュールの使用方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。