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