におけるベンダーとエラー「パッケージを見つけることができません」解決は私のような下に見えるプロジェクトの構造を持って行く1.7
github.com
golang.org
x
net
gopkg.in
マイMakefile
以下のようになります: -
.PHONY: deploy
LOGLEVEL ?= 1
CONFIGFILE ?= 2
GOFLAGS ?= $(GOFLAGS:)
PWD = $(shell pwd)
export GOPATH = $(shell echo $$GOPATH):$(PWD)/_libs:$(PWD)
export GOBIN = $(PWD)/bin
export GOROOT = $(shell echo $$GOROOT)
deploy: clean build install
build:
@rm -rf pkg/ 2>/dev/null
@rm -rf _libs/pkg/ 2>/dev/null
@go build $(GOFLAGS) ./...
install:
@go install ./...
clean:
@go clean $(GOFLAGS) -i ./...
## EOF
すべてうまくいきます。今私はvendor
に移動することを考えています。だから私はvendor
へ_libs
私の名前を変更し、修正私のMakefile
以下のように: - :
vendor/golang.org/x/net/html/charset/charset.go:20:2: cannot find package "golang.org/x/text/encoding" in any of:
/Users/debraj/golang/src/b/m/session-service/vendor/golang.org/x/text/encoding (vendor tree)
/usr/local/go/src/golang.org/x/text/encoding (from $GOROOT)
/Users/debraj/golang/src/golang.org/x/text/encoding (from $GOPATH)
/Users/debraj/golang/src/b/m/session-service/src/golang.org/x/text/encoding
vendor/golang.org/x/net/html/charset/charset.go:21:2: cannot find package "golang.org/x/text/encoding/charmap" in any of:
/Users/debraj/golang/src/b/m/session-service/vendor/golang.org/x/text/encoding/charmap (vendor tree)
/usr/local/go/src/golang.org/x/text/encoding/charmap (from $GOROOT)
/Users/debraj/golang/src/golang.org/x/text/encoding/charmap (from $GOPATH)
/Users/debraj/golang/src/b/m/session-service/src/golang.org/x/text/encoding/charmap
vendor/golang.org/x/net/html/charset/charset.go:22:2: cannot find package "golang.org/x/text/encoding/htmlindex" in any of:
/Users/debraj/golang/src/b/m/session-service/vendor/golang.org/x/text/encoding/htmlindex (vendor tree)
/usr/local/go/src/golang.org/x/text/encoding/htmlindex (from $GOROOT)
/Users/debraj/golang/src/golang.org/x/text/encoding/htmlindex (from $GOPATH)
/Users/debraj/golang/src/b/m/session-service/src/golang.org/x/text/encoding/htmlindex
vendor/golang.org/x/net/html/charset/charset.go:23:2: cannot find package "golang.org/x/text/transform" in any of:
/Users/debraj/golang/src/b/m/session-service/vendor/golang.org/x/text/transform (vendor tree)
/usr/local/go/src/golang.org/x/text/transform (from $GOROOT)
/Users/debraj/golang/src/golang.org/x/text/transform (from $GOPATH)
/Users/debraj/golang/src/b/m/session-service/src/golang.org/x/text/transform
vendor/golang.org/x/net/http2/h2i/h2i.go:38:2: cannot find package "golang.org/x/crypto/ssh/terminal" in any of:
/Users/debraj/golang/src/b/m/session-service/vendor/golang.org/x/crypto/ssh/terminal (vendor tree)
/usr/local/go/src/golang.org/x/crypto/ssh/terminal (from $GOROOT)
/Users/debraj/golang/src/golang.org/x/crypto/ssh/terminal (from $GOPATH)
/Users/debraj/golang/src/b/m/session-service/src/golang.org/x/crypto/ssh/terminal
環境: - -
- が行く
export GOPATH = $(shell echo $$GOPATH):$(PWD)
しかし、私は次のエラーを取得し始め、この後
バージョンgo1.7.3 darwin/amd64 - Mac OS X 10.11.6
私はvendor
で上記のエラーが発生する理由を誰かに教えてもらえますか?_libs
ですべて正常に動作しますか? $(go list ./... | grep -v /vendor/)
の出力での改行は、いくつかの問題を引き起こしていた私の地元で
UPDATE
。だからこれを解決するために、私はjimb
の解決策を少し修正しなければなりませんでした。私はMakefile
PKG = $(shell go list ./... | grep -v /vendor/ | tr "\n" " ")
で変数を導入し、その後_libs
ディレクトリは_
で始まり、そしてgo
ツールによって無視され@go build $(GOFLAGS) $(PKG)
'vendor /'の中には依存関係のないパッケージがありますが、それらをビルドしていないと思います。 '。/ ...'を使わず、ビルドしたいパッケージだけをインストールしてください。 – JimB
しかし、すべての依存関係が '_lib'の下でうまくいけば、すべてうまくいっていました。また、 'go install。/ ...'を使ってはいけないと言っていますか? – tuk
'_lib'の先頭にアンダースコアを付けた理由は、あなたがそれまでに働いたことがない限り、goツールで無視されるためです。いいえ、この場合は、 'go install。/ ...'を使ってはいけません。ビルドしたい特定のメインパッケージだけをインストールしてください。 – JimB