2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

2
Last updated at Posted at 2019-03-08

自作パッケージを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することができました。

急募

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

2
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?