1. ホーム
  2. 行く

[解決済み】複数ファイルのGoプロジェクトを整理する【クローズド

2022-04-01 22:02:08

質問

注:この質問は、次のことに関連しています。 これ しかし、2年というのは、囲碁の歴史の中ではとても長い時間です。

開発中のGoプロジェクトの標準的な編成方法は何ですか?

私のプロジェクトは、単一のパッケージ mypack ということで、すべての .go ファイルを mypack ディレクトリを作成します。

しかし、それなら開発中にテストしたいので、少なくとも main パッケージを使用することで go run trypack.go

どのように整理すればよいのでしょうか?以下のようになります。 go install mypack その都度、試してみるのですか?

解決方法は?

のこのページを見直すことをお勧めします。 Goコードの書き方

この本は、プロジェクトの構成方法を go build を使いやすくし、また、テストの書き方を説明します。テストは、コマンドラインで main パッケージを使用します。それらは単に各パッケージの一部としてTestXの名前付き関数とすることができ、さらに go test がそれを発見してくれる。

ご質問のリンク先で提案されている構造は、Go 1のリリースに伴い、少し古くなっています。 pkg ディレクトリの下に src . spec に関連するディレクトリは、GOPATH のルートにある bin、pkg、src の 3 つだけです。src の下には、単純にプロジェクトの mypack その下にmypack_test.goを含むすべての.goファイルがあります。

go build は、ルートレベルの pkg と bin にビルドされます。

ですから、GOPATHは次のようになります。

~/projects/
    bin/
    pkg/
    src/
      mypack/
        foo.go
        bar.go
        mypack_test.go

export GOPATH=$HOME/projects

$ go build mypack
$ go test mypack

更新: >= Go 1.11の時点で モジュール システムは現在ツールの標準的な部分であり、GOPATH のコンセプトは廃止されつつあります。