Elixir:重新编译配置更新

时间:2018-01-06 16:40:08

标签: elixir

我有一个灵丹妙药应用,当我更新应用配置时,例如更改端口,然后再次运行我的应用程序,我没有看到任何差异。似乎应用程序仍然可以使用配置上的旧版本。我必须修改应用程序代码(例如添加一些毫无意义的行:IO.put(" foo"))并且只有在此之后,应用程序才运行新版本的配置。实现相同结果的真正方法是什么?

2 个答案:

答案 0 :(得分:1)

我无法重现此行为,可能是由于最近的mix版本。下面是盲目猜测可能导致它的原因以及如何克服它。

Elixir中的.exs个文件和.ex文件之间存在显着差异。前者是所谓的“Elixir脚本”,后者是要编译的通用Elixir文件。

在执行run任务之前,

mix工具正在寻找要编译的文件中的

由于.exs文件被视为脚本mix不认为项目已更改并需要重新编译。幸运的是,run任务接受--config命令行选项,允许显式指定要使用的配置文件。当明确指定config时,它将被强制重新加载,新值将明确生效。

答案 1 :(得分:1)

混合应该recompile the project if you change any file inside "config"

我的猜测是你可能正在调用一个不要求你的项目编译的自定义任务。每个Mix任务都有责任说出他们期望应用程序处于哪种状态:编译,加载等等。