LoginSignup
4
0

More than 3 years have passed since last update.

Elixir mix.exsでローカルにあるプロジェクトを参照する

Last updated at Posted at 2019-09-30

結論

結論から書く。mix.exsに以下のように追加すれば良い。

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して事なきを得たという次第。

参考

4
0
0

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
4
0