2016-05-19 9 views
4

新しいこのプログラマーになる - これはよく磨耗した領土なら謝罪するが、Googleの検索では私が探している答えが表示されていない。Goで特定のインポートパスを強制する

ショートバージョン:コアGoプロジェクトの外部のプログラマとして、私のパッケージを特定の名前でインポートすることはできますか?もしそうなら、どうですか?

ロングバージョン:私は最近、私のワークスペースに正しくダウンロード次go get

go get github.com/golang/crypto 

パッケージで、following GitHub repositoryからbcryptパッケージをインストールしようとしたが、私はそれをインポートしようとしたとき、私は次のようになりましたエラー

は$ main.go main.go実行行く:2:10ディレクトリ/path/to/go/src/github.com/golang/crypto/bcryptのコードはインポート「golang.org/xを期待します/ crypto/bcrypt "

つまり、このパッケージには、golang.org/x/crypto/bcryptでインポートされるはずです。これは私が実際に望んでいたこと

go get golang.org/x/crypto/bcrypt 

だったことを私にチップオフ私は自分のパッケージに似た何かをしたい - ゴーパッケージに組み込まれたこの機能はありますか?または、crypto/bcryptの作者が、無効なパッケージインポート名を検出して拒否するために実行時に何かをしていますか?

答えて

6

それを内蔵していますはい、私は実装の文書を見つけることができないよう(それが1.5または1.6で比較的新しい機能だ)しかし、構文は次のとおりです。

package name // import "your-custom-path" 

例:https://github.com/golang/crypto/blob/master/bcrypt/bcrypt.go#L7

//編集

この機能の設計文書はhttps://docs.google.com/document/d/1jVFkZTcYbNLaTxXD9OcGfn7vYv5hWtPx9--lTx1gPMs/edit

//編集です

@JimBはhttps://golang.org/cmd/go/#hdr-Import_path_checkingに、そしてgo1.4のリリースノートで指摘:https://golang.org/cmd/go/#hdr-Import_path_checking、およびgo1.4のリリースノートのhttps://golang.org/doc/go1.4#canonicalimports

+0

を: https://golang.org/doc/go1.4#canonicalimports – JimB

+0

@JimB coulda swore私はそれを確認しました、私はより明確にするために投稿に追加します。 – OneOfOne

関連する問題