私はゴランに新しいです。私が理解しているように、新しいGoプロジェクトを作成するには、ディレクトリを作成するだけです。次に、環境変数GOPATH
をこのディレクトリに指定します。このディレクトリの中に、pkg
、src
、およびbin
の3つのサブディレクトリを作成します。その後、go get ...
を実行すると、サードパーティのパッケージがpkg
サブディレクトリにインストールされます。後で別のGoプロジェクトを作成する場合は、project2という新しいディレクトリを作成し、project2にはGOPATH
を指定します。この時点でgo get ...
はproject2のサブディレクトリpkg
にサードパーティのパッケージをダウンロードします。私の質問は、Goにセントラルリポジトリがあるかどうかです。同じパッケージが2つの異なるプロジェクトで使用されている場合は、2回ダウンロードされます。本当?golangには、ダウンロードしたサードパーティのパッケージ用の中央リポジトリがありますか?
答えて
goパッケージの中央リポジトリはありません。 Goは常にGOPATHまたはGOROOTのいずれかのパッケージを探しています。単にgitやmercurialを使ってパッケージをダウンロードするだけです。私はあなたが https://golang.org/doc/code.html とhttps://peter.bourgon.org/go-best-practices-2016/#repository-structure
GOPATHを読むことをお勧めします単にどこsrc
、pkg
ディレクトリを検索するようにコンパイラに行くように指示します。私は別の移動プロジェクトを作成する場合
はその後、私は行くが、中央リポジトリを持っているかどうか、 ... 私の質問があるのProject2するのProject2とポイントGOPATHと呼ばれる新しいディレクトリを作成しますか?同じパッケージが2つの異なるプロジェクトで使用されている場合は、2回ダウンロードされます。本当?
いいえ、Goコードの中央リポジトリはありません。ただし、パッケージが常に2回ダウンロードされることは事実ではありません。
ここでの誤解は、GOPATH
が個々のプロジェクトを指していることです。それはありません。代わりに、GOPATH
はの環境を指しています。 go get
はパッケージをダウンロードし、go build
はビルド時にパッケージを探します。代わりに、すべてのプロジェクトのためにGOPATH
を変更するので
、一度GOPATH
を設定し、$GOPATH/src/
にあなたのプロジェクトのすべてを置く必要があります(あなたのプロジェクトがsrc/
ディレクトリが含まれていない、彼らはでsrc/
ディレクトリを行きます)。あなたは、単一のローカルキャッシュを意味しています、「中央リポジトリ」と
$GOPATH/src/bitbucket.org/ (or GitHub, or your website, or whatever)
├── YourProject
└── AnotherProject
- 1. ライブラリはmaven2中央リポジトリにありますが、mvnrepository.comにはありません
- 2. golangにコマンドラインインタプリタ用の組み込みパッケージがありますか?
- 3. RPMパッケージを構築中にサードパーティのリポジトリからyumパッケージをインストールする
- 4. Mavenビルドが中央リポジトリから間違ってダウンロードされる
- 5. J2EEパッケージ - サードパーティのライブラリはどこにありますか?
- 6. は元からのベンダー/パッケージのダウンロードに失敗しました...同じリポジトリに
- 7. アンドロイドでビデオをダウンロードするサードパーティのライブラリはありますか?
- 8. 中央ヨーロッパ向けの汎用TimeZoneInfoはありますか?
- 9. コード管理のための中央リポジトリ
- 10. golangプレイグラウンドにサードパーティのパッケージをインポートすることはできますか
- 11. は、中央管理のタイマジョブステータスページがあり
- 12. リファクタリングオーバーライドメソッドは、ボディの中央にのみ差があります。
- 13. バナーの中央にテキストがありますか?
- 14. 角度2 ng2-chartsの中央にドーナツテキストがありますか?
- 15. iphoneにローカルWebサーバーがありますか、またはサードパーティのWebサーバーをダウンロードできますか?
- 16. 私は、次のGoLangパッケージを使用していますストレージgolang
- 17. Tkinter .grid()の位置が画面の中央にあります
- 18. イメージは中央ページの後ろにありますか?中心ページの
- 19. golangパッケージもcliのスタンドアロンで使用する必要があります
- 20. divバーの中央にリンクがあります
- 21. 中央のFreePascal/Lazarusコンポーネントリポジトリはありますか?
- 22. ブートノードの中央ノードはありますか?
- 23. Golang 1.6ベンダフォルダにパッケージがありません
- 24. サードパーティ製のライブラリを公開リポジトリにダウンロードする方法
- 25. golangスイッチに「値として使用」エラーがありますか?
- 26. グリッドビューの印刷プレビューが中央グリッドではありません
- 27. archiva中央リポジトリのURLは何ですか?
- 28. メイヴンレポのPostGresql 9.2 JDBC 4ドライバはどこにありますか? Mavenの中央リポジトリPostgreSQLのために利用可能な最新のjdbc4ドライバを見ると
- 29. テスト用GITリポジトリはありますか?
- 30. 要素がビューポートの中央にあるまでスクロールします
:
だから、たとえば、ツリー全体は、次のようになりますか?これがあなたのGOPATHです。複数のプロジェクトで同じGOPATHを使用できます。 – JimB
私がproject1で作業している場合、私はGOPATHをproject1に向けます。後で私はproject2に取り組んでいます.GOPATHをproject2に向けるべきですか?その場合、GOPATHはローカルキャッシュではありません... – user130268
GOPATHはプロジェクトのルートではありません。あなたのプロジェクトは '$ GOPATH/src'の下のインポートパスに置かれていなければなりません。 [Go Codeの書き方]を参照してください。 – JimB