読者です 読者をやめる 読者になる 読者になる

fugafuga.write

アウトプットする用



Go 言語のプロジェクト構成

Go のプロジェクトのディレクトリ構成などについて

プロジェクト構成

プロジェクトディレクトリをgo_workとする。

go_work
├── bin -> go install 時にバイナリが格納される
├── pkg -> 依存パッケージのオブジェクトファイル格納場所
└── src -> ソースコード格納場所

上記3つのディレクトリがあることが前提。
環境変数$GOPATHにプロジェクトディレクトリを指定することで、依存パッケージの解決が自動的に行われる。

% cd go_work
% export GOPATH=`pwd`

パッケージについて

Go のパッケージは、Ruby で言うところの gem にあたる。 パッケージは自分で作ったり、Git などでリポジトリが公開されていれば、それをgo get コマンドでコピーして利用できる。

パッケージの作成

gosample というパッケージを作成するときのディレクトリ構成。 https://github.com/tokoyax/gosample にリポジトリを作成して公開する場合。
あらかじめ、github でリポジトリを作成しておくこと。

go_work
├── bin
├── pkg
└── src
    ├── github.com
    │   └── tokoyax
    │       └── gosample
    │           └── gosample.go

gosample.go がソースコード。 go_work/src/github.com/tokoyax/gosample で、git リポジトリを作成して、github に push する。

% cd $GOPATH/src/github.com/tokoyax/gosample
% git init
% git add .
% git commit -m "commit message"
% git remote add origin https://github.com/tokoyax/gosample.git
% git push -u origin master

以上で、パッケージの公開は完了。

パッケージの利用

go getコマンドで取得できる。
依存するライブラリも取得してきて、ビルドもしてくれる。

% go get github.com/mattn/go-haiku

完了後

go_work
├── bin
├── pkg
│   └── darwin_amd64
│       ├── github.com
│       │   ├── ikawaha
│       │   │   └── kagome
│       │   ├── mattn
│       │   │   └── go-haiku.a
│       └── gosample.a
└── src
    ├── github.com
    │   ├── ikawaha
    │   │   └── kagome  <- 依存ライブラリ
    │   ├── mattn
    │   │   └── go-haiku  <- go get で取得したライブラリ
    │   │       ├── README.md
    │   │       ├── cmd
    │   │       │   └── haiku
    │   │       │       └── main.go
    │   │       └── haiku.go

改訂2版 基礎からわかる Go言語

改訂2版 基礎からわかる Go言語

はじめての「Go言語」 (I・O BOOKS)

はじめての「Go言語」 (I・O BOOKS)