Go 依存関係管理の概要:
vgo
あなたのバージョンが次の場合:x >= go 1.11
dep
またはvendor
、go のバージョンが次の場合:go 1.6 >= x < go 1.11
- go のバージョンが次の場合は手動で:
x < go 1.6
編集 3: Go 1.11 には、vgo
を置き換える dep
機能があります。
を使用するには、モジュールのドキュメントvgo
を参照してください。以下のTLDR:
export GO111MODULE=on
go mod init
go mod vendor # if you have vendor/ folder, will automatically integrate
go build
このメソッドは、go.mod
プロジェクト ディレクトリに呼び出されるファイルを作成します。その後、 でプロジェクトをビルドできますgo build
。が設定されている場合GO111MODULE=auto
、プロジェクトを に含めることはできません$GOPATH
。
編集 2: ベンダー方式は引き続き有効であり、問題なく機能します。vendor
このため、大部分は手作業でdep
作成vgo
されました。
編集 1: 私の古い方法は機能しますが、もはや「正しい」方法ではありません。Go 1.6 でデフォルトで有効になっているベンダー機能、、vgo
または(今のところ) を使用する必要があります。を参照してください。基本的に、ディレクトリ内に「外部」または「依存」パッケージを追加します。コンパイル時に、コンパイラはこれらのパッケージを最初に使用します。dep
vendor
見つかった。GOPATH
サブフォルダーを作成してから、次のようなスクリプトでインポートすることにより、ローカルパッケージをpackage1
インポートできました。import "./package1"
binary1.go
binary2.go
binary1.go
...
import (
"./package1"
)
...
したがって、現在のディレクトリ構造は次のようになります。
myproject/
├── binary1.go
├── binary2.go
├── package1/
│ └── package1.go
└── package2.go
また、相対パス (少なくとも go 1.5 では) も機能することに注意してください。例えば:
import "../packageX"