Help us understand the problem. What is going on with this article?

自作パッケージをpushしてgo getするのが面倒くさい

More than 1 year has passed since last update.

自作パッケージをpushしてgo getするのが面倒くさい

3/9追記しました

急募

ちゃんとした開発方法が記されたわかりやすいドキュメント

問題

そもそも開発方法としてどうしたらいいのかわからないけど、とりあえず誰でもgo getして使えるようにgithubのリポジトリからインポートするようにしています。

import "github.com/~~~"

こんな感じに開発していると、このインポートしているパッケージを変更したときにまたpushしないといけません。
ちょっとした変更でも。

git add .
git commit -m 'ちょっとした変更'
git push origin master

というか、動くかどうかもわからないコードでマスターが汚れます。

3/9追記 解決方法

コメントで@spiegel-im-spiegelさんに教えていただきました。
GOPATHには複数のパスを設定できるようです。go getを使用した場合は最初に指定したパスが使われます。そのため、2番目以降に開発用のディレクトリを指定すると良さそうです。

例えば、GOPATH$HOME/go-devというパスを指定し、$HOME/go-dev/src/github.com/ophum/testというディレクトリを作成し、このディレクトリで開発を行うようにすると良さそうです。

暫定的な解決方法(?)

go getすると$GOPATHで指定されたディレクトリにリモートからクローンするようです。例えば、githubのophumというユーザのtestというリポジトリをgo getした場合$GOPATH/src/github.com/ophum/testというパスでクローンされます。また、このディレクトリの中にはリポジトリの内容と同じものが入っています。(クローンなので)

同じものが入っています。

ということで、例えばローカルのリポジトリのパスが以下のような場合

$HOME/test

このパスのリンクを$GOPATH/src/github.com/ophum/に貼ってあげます。

ln -s $HOME/test $GOPATH/src/github.com/ophum/test

そうすることで、$HOME/testを変更した場合リモートにpushすることなく、このパッケージをインポートしているパッケージでgo runすることができました。

急募

ちゃんとした開発方法が記されたわかりやすいドキュメント

hum_op
趣味でプログラム書いたりネットワークとかコンテナ技術系について調べたり LXCとかSDNとか興味あります
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away