Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将erlang包添加到elixir应用程序中_Elixir_Phoenix Framework_Ecto - Fatal编程技术网

如何将erlang包添加到elixir应用程序中

如何将erlang包添加到elixir应用程序中,elixir,phoenix-framework,ecto,Elixir,Phoenix Framework,Ecto,我正在尝试使用edeliver构建我的elixir应用程序的发行版,但我遇到以下错误 ==> Failed to build release: Undefined applications: [xmerl] 我正在尝试将xmerl添加到mix.exs文件中的deps列表中,但我不确定如何执行此操作 任何帮助都将不胜感激。提前谢谢 这是当前在我的项目中的DEP列表 defp deps do [{:phoenix, "~> 1.2.1"}, {:appsignal,

我正在尝试使用
edeliver
构建我的elixir应用程序的发行版,但我遇到以下错误

==> Failed to build release:

    Undefined applications: [xmerl]
我正在尝试将
xmerl
添加到
mix.exs
文件中的
deps
列表中,但我不确定如何执行此操作

任何帮助都将不胜感激。提前谢谢

这是当前在我的项目中的DEP列表

defp deps do
  [{:phoenix, "~> 1.2.1"},
   {:appsignal, "~> 1.0"},
   {:phoenix_pubsub, "~> 1.0"},
   {:phoenix_ecto, "~> 3.0"},
   {:postgrex, ">= 0.0.0"},
   {:phoenix_html, "~> 2.6"},
   {:phoenix_live_reload, "~> 1.0", only: :dev},
   {:phoenix_html_sanitizer, "~> 1.0.0"},
   {:gettext, "~> 0.11"},
   {:cowboy, "~> 1.0"},
   {:earmark, "~> 1.1"},
   {:comeonin, "~> 3.0"},
   {:credo, "~> 0.7.2", only: [:dev, :test]},
   {:timex, "~> 3.0"},
   {:segment, github: "tonydaly/analytics-elixir"},
   {:bamboo, "~> 0.7"},
   {:bamboo_smtp, "~> 1.2.1"},
   {:mock, "~> 0.2.0", only: :test},
   {:faker, "~> 0.7"},
   {:wallaby, "~> 0.16.1"},
   {:ecto_factory, "~> 0.0.6"},
   {:oxleas_adhd, in_umbrella: true},
   {:plug, "~>1.3.5", override: true}
 ]
end
你必须去叫副警长

$ mix deps.get

为了将来的游客,我会把正确的答案放在这里

mix.exs
文件应该声明两个回调:
project
和(可选)
application

当项目打算作为一个应用程序运行并且超出了这个问题的范围时,使用后者。前者必须返回一个关键字列表,描述当前。此关键字列表可能明显包含
deps
关键字,以返回此项目的依赖项列表。这些依赖项将由
mix
工具半自动管理(获取、重建等)

默认情况下,
mixnew
任务为
项目
回调生成一个支架,返回如下列表:

def项目做什么
[
应用程序::诸如此类,
版本:“0.1.0”,
长生不老药:“~>1.7-dev”,
start_permanent:Mix.env()==:prod,
deps:deps()#⇐ 在这里
]
结束
如果坚持使用建议的脚手架,他们应该实现私有函数
deps
(参见上面的最后一行)

如果您只有一个依赖项,只需就地执行即可:

def项目做什么
[
应用程序::诸如此类,
版本:“0.1.0”,
长生不老药:“~>1.7-dev”,
start_permanent:Mix.env()==:prod,
deps:[{:exmerl,“~>0.1}]#⇐ 在这里
]
结束

xmerl
或,或任何其他文件的长生不老药包装器。

您可以显示您的mix.exs文件,特别是deps部分吗。@JustinWood
mix
文件没有部分:)
deps
是一个很好的函数,从默认生成的脚手架中的
project
回调调用。@JustinWood我已更新问题以显示deps@mudasobwa我知道mix没有真正的部分。但是口头上要求一个部分应该被理解
deps
应该是一个私有函数,2
deps
不是回调,不会在
mix.exs
文件中执行任何操作,除非在从
project
回调返回
deps
时调用。是的,应该是defp而不是DEF谢谢您的回复。我已尝试添加
{:xmerl,“~>1.3”}
,正如您在回答中所建议的,但我得到以下错误。。。“
无法从注册表(使用缓存)获取“hexpm/xmerl”的记录。这可能是因为该包不存在、拼写错误或您没有权限访问它。”。看起来这个包不存在。但我知道它是erlang的一部分。有什么想法吗?应该是的,我错过了纯二郎,对不起。更新了答案。谢谢更新。我也尝试添加这个包,但我得到了相同的错误。这似乎是我的问题,因为我在本地运行该程序时没有收到错误,因此正在为我的应用程序运行构建。
$ mix deps.get