LoginSignup
13
13

More than 5 years have passed since last update.

MixのCustom Taskをhex.pmにpublishせずにローカルで使う方法

Posted at

MixのCustom Taskは簡単に作れていいですね。しかも、Custom Taskのプロジェクト自身からTaskを実行できて、動作を確認するのが楽ちんです。

折角Custom Taskを作ったのなら別のプロジェクトでも使いたくなりますよね。でもhttps://hex.pmにpublishするほどじゃない。そんなときどうすればいいか調べたので、メモっておきます。

Custom Taskを作る

Custom Taskのプロジェクトを作る

mix new sample_cmd
cd sample_cmd

Custom Taskのmoduleを作る

lib/mix/tasks/sample_cmd.exs
defmodule Mix.Tasks.SampleCmd do
  use Mix.Task

  @shortdoc "Sample mix command"

  def run(args) do
    IO.puts "hello world"
  end
end

動作確認

compileし、mix helpに表示されることを確認

mix compile
mix help

...
mix sample_cmd        # Sample mix command
...

taskを実行

mix sample_cmd
> hello world

Custom Taskを使う

プロジェクトを作る

mix new sample
cd sample

mix.exsのdependenciesに追加

sample/mix.exs
...
  defp deps do
    [{:sample_cmd, path: "path/to/sample_cmd"}]
  end
...

動作確認

mix helpにCustom Taskが表示されることを確認

mix help

...
mix sample_cmd        # Sample mix command
...

taskを実行

mix sample_cmd
> hello world

ポイント

mixのdepsはgitpathもサポートしていて、gitリポジトリやローカルのライブラリを参照することができます。

詳しくは、Mix.Tasks.Depsを参照すると良いと思います。

13
13
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
13
13