我正在尝试使用edeliver
构建我的elixir应用版本,但是我收到以下错误。
==> Failed to build release:
Undefined applications: [xmerl]
我正在尝试将xmerl
添加到deps
文件中的mix.exs
列表中,但我不确定如何执行此操作。
非常感谢任何帮助。提前致谢
这是目前在我的项目中的deps列表...
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
答案 0 :(得分:3)
为了将来的访客,我会在这里提出正确答案。
mix.exs
文件应声明两个回调:project
和(可选)application
。
当项目要作为应用程序运行时使用后者,并且超出了此问题的范围。前者必须返回一个关键字列表,描述当前的Mix.Project。此关键字列表可能显然包含deps
关键字,以返回此项目的依赖项列表。这些依赖项将由mix
工具半自动管理(提取,重建等)。
默认情况下,mix new
任务为project
回调生成一个支架,返回此列表,如:
def project do
[
app: :blah,
version: "0.1.0",
elixir: "~> 1.7-dev",
start_permanent: Mix.env() == :prod,
deps: deps() # ⇐ HERE
]
end
如果坚持使用建议的脚手架,他们应该实现私有函数deps
(参见上面的最后一行。)
如果您有一个依赖项,只需在原地进行:
def project do
[
app: :blah,
version: "0.1.0",
elixir: "~> 1.7-dev",
start_permanent: Mix.env() == :prod,
deps: [{:exmerl, "~> 0.1"}] # ⇐ HERE
]
end
答案 1 :(得分:0)
def deps do
[
{:xmerl, "~> 1.3.16"}
]
end
你必须获取deps,
$ mix deps.get