結論
結論から書く。mix.exsに以下のように追加すれば良い。
{:algae, path: "../algae", override: true},
参照される側のprojectではlocalにinstallしておく必要がある。
mix deps.get
mix archive.install
解説
path: "<YOUR_PATH>"
この指定でローカルにあるディレクトリを見てくれる。'path:'を忘れがちで何度もエラーになった。pathに相対パスが使えないのかもと思って絶対パスにしたりしたけど、'path:'のつけ忘れが原因で相対パスはちゃんと使える
override: true
他のライブラリが同じプロジェクトを見ている時、バージョンが違うと依存バージョンがdiverseしてるみたいな感じで怒られる。自分が指定したものを優先したい時にoverrideをつける
mix archive.install
mix help
するとarchiveとescriptがあり、今回のケースではarchive.install
を使う。
これが必要になった事例
Algaeを動かそうと思ってmix.exsに追加するとmix deps.compile
が通らない。ググってみると下記が見つかった。
最終的には「直したからすぐリリースするね」といっているが、この記事執筆時点で22days経過していてリリースされてない。mix.exsに指定できるのは1.2.5までだった。cloneしてきたがmasterにはこの修正が入っていない。git co -b elixir-1.9 origin/elixir-1.9
したらこのブランチに入っていたので、mix archive.install
して事なきを得たという次第。
参考
-
公式 mix archive.install https://hexdocs.pm/mix/Mix.Tasks.Archive.Install.html
-
fugafuga.write(blog) https://blog.tokoyax.com/entry/elixir/register-to-hex