golangパッケージ管理

  • すべての依存関係を自動的にダウンロードします
    • go get -d -v ./...
      • -d ただ、コードパッケージをダウンロードしインストールコマンドを実行しないでください
      • -v詳細なログとデバッグログを出力します。このフラグは、ここでは、各ダウンロードしたパッケージを追加します印刷されます。
      • ./...これは、現在のディレクトリ内のすべてのファイルを代表して、パスを表します。

モジュール

  • よるgo.modマニュアルパッケージの依存関係、go.sum悪意のある変更からファイル

  • プロジェクトはGOPATHパスの下に整理する必要はありません。

    • インポートソースコードパッケージは、もはやsrcディレクトリの下にはなく、PKG / MODディレクトリの下に編成されていません
    • 背後にそのディレクトリ内のパッケージ名があります@<tag_num>ので、go modあなたは、異なるバージョンを区別することができます
      • 例えば$GOPATH\pkg\mod\github.com\go-sql-driver\[email protected]
      • バージョン番号は、レポタグです
      • タグのためにプレーしませんでした、go.modフォーマットは、疑似バージョンです。その意味は、v0.0.0-yyyymmddhhmmss-abcdefabcdef
  • ただgovendorからgomodへの移行go mod init 模块名後、go run/build一度

  • 置き換えパケットアドレスをリダイレクトします

    • ドメインの下にGoogleのパッケージは、GitHubのにリダイレクトすることができます
  • 環境変数はGO111MODULE必須使用MODモードに設定され、開口部は、外側パスオートGOPATH上に設けられています

  • モジュール名をとることができますが、より多くの互換性のために、従うべきgithub.com/name/repoフォーマットを

共通コマンド

go mod init <模块名> # 初始化模块
go mod download # 下载依赖包
go mod tidy # 移除未用到的包,下载缺失的包
go mod verity # 验证包依赖是否正确
go mod vendor # 生成vendor目录

参照

モジュール- GitHubの
モジュールはじめにgolangパッケージ変更

ベンダー

  • すべての依存情報のベンダーのディレクトリレコードでvendor.jsonファイル
    • GitHubのにプロジェクトをアップロードするときに、あなただけのアップロードすることができvendor.jsonによって、他の人がすることができ、ファイルを同期がgovendorベンダーのフォルダに応じてファイルを再インストールするコマンドを頼ります
# 安装govendor
go get -u -v github.com/kardianos/govendor

# 常用命令
govendor init  # 初始化vendor目录
govendor list  # 列出当前所有包依赖
govendor add package_path # 添加依赖包
govendor add +e # 添加所有为什么GOPATH路径下的依赖包
govendor fetch packge_path #添加远程依赖包
govendor update packge_path #更新依赖包
govendor remove packge_path #删除依赖包
govendor sync #根据vendor.json安装依赖包

ここに画像を挿入説明

参照

https://blog.csdn.net/dupeng0811/article/details/89877712

インポート

  • 私たちは、サードパーティのパッケージをインポートすると、(pkgディレクトリの下に)コンパイル済みのパッケージオブジェクトを見つけるためのコンパイラは、ないパッケージオブジェクト場合は、コンパイルに対応するソースコードを見つけるために、ソースディレクトリに移動します
  • 我々ときに他の項目が含まれて導入internal依存パッケージを、ゴー言語はコンパイル時に文句を言うだろう
    • 同じプロジェクトで、プロジェクトの内部パッケージの導入と、このエラーは発生しません場合、このエラーは、のみ発生します、現在のプロジェクトツリーに導入された内部パッケージに存在しません。
      ここに画像を挿入説明

      ここに画像を挿入説明

初期化

  • 初期化機能はします、main関数の前に実行されます
  • 使用する必要がある_パケットをインポートするには、ヌルオブジェクト識別子は、バッグの機能を実行するためにあるのinit
  • 私たちは、initで重い初期化ロジックを行っているべきではありませんが、いくつかの簡単な操作を行うために、軽量の前提条件判断

外国チェーンの写真が失敗したダンプ[、発信局は、(IMG-CPiOTHbD-1570015024097)(Cアップロード直接ダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよい:\ Users \ユーザー35135 \のAppData \ローミング\ Typora \ typora-ユーザーの画像を\ 1569987665508.png)]

公開された161元の記事 ウォン称賛19 ビュー50000 +

おすすめ

転載: blog.csdn.net/winter_wu_1998/article/details/101746005