Mar*_*vić 4 linux elixir rabbitmq elixir-framework phoenix-framework
我想通过amqp从我的elixir phoenix应用程序中使用rabbitMQ.我在官方网站上关注了教程,但在此期间mix.deps compile,我收到一个错误:
include/amqp_gen_consumer_spec.hrl:30: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:31: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:32: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:34: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:35: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:36: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:37: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:38: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:39: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:42: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:30: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:31: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:32: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:34: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:35: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:36: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:37: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:38: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:39: syntax error before: '/'
include/amqp_gen_consumer_spec.hrl:42: syntax error before: '/'
Compiling src/amqp_selective_consumer.erl failed:
ERROR: compile failed while processing /home/bmarkons/soc2016-marko/telegram/deps/amqp_client: rebar_abort
** (Mix) Could not compile dependency :amqp_client, "/usr/bin/rebar compile skip_deps=true deps_dir="/home/bmarkons/soc2016-marko/telegram/_build/dev/lib"" command failed. You can recompile this dependency with "mix deps.compile amqp_client", update it with "mix deps.update amqp_client" or clean it with "mix deps.clean amqp_client"
Run Code Online (Sandbox Code Playgroud)
我在mix.exs文件中只添加了:amqp和{:amqp,"〜> 0.1.4"}:
def application do
[mod: {App, []},
applications: [:phoenix, :phoenix_pubsub, :phoenix_html, :cowboy, :logger, :gettext,
:phoenix_ecto, :postgrex, :amqp]]
end
defp deps do
[{:phoenix, "~> 1.2.0"},
{:phoenix_pubsub, "~> 1.0"},
{:phoenix_ecto, "~> 3.0"},
{:postgrex, ">= 0.0.0"},
{:phoenix_html, "~> 2.6"},
{:phoenix_live_reload, "~> 1.0", only: :dev},
{:gettext, "~> 0.11"},
{:cowboy, "~> 1.0"},
{:amqp, "~> 0.1.4"}]
end
Run Code Online (Sandbox Code Playgroud)
我需要做些什么改变才能让我的灵丹妙药应用程序与RabbitMQ一起工作?
谢谢
这是:amqp项目中报告的问题(https://github.com/pma/amqp/issues/28)它无法使用Erlang 19进行编译.问题在于:amqp_client.存储库中的最后一个版本是固定的,但它不作为十六进制包存在.
2016-08-16更新:
如果您想AMQP在项目中使用Erlang 19,只需添加当前:amqp_client依赖项以覆盖随附的依赖项AMQP:
def deps do
[{:amqp_client, git: "https://github.com/jbrisbin/amqp_client.git", override: true},
{:amqp, "~> 0.1.4"}]
end
Run Code Online (Sandbox Code Playgroud)
对于这个具体的例子,你应该有类似的东西:
defp deps do
[{:phoenix, "~> 1.2.0"},
{:phoenix_pubsub, "~> 1.0"},
{:phoenix_ecto, "~> 3.0"},
{:postgrex, ">= 0.0.0"},
{:phoenix_html, "~> 2.6"},
{:phoenix_live_reload, "~> 1.0", only: :dev},
{:gettext, "~> 0.11"},
{:cowboy, "~> 1.0"},
{:amqp_client, git: "https://github.com/jbrisbin/amqp_client.git", override: true},
{:amqp, "~> 0.1.4"]
end
Run Code Online (Sandbox Code Playgroud)
要点:如果混合文件已经覆盖了依赖项,则应该覆盖
:amqp_client使用AMQP事件的项目中的依赖项.
我希望这有帮助.
我必须按如下方式定义依赖项(分支信息)以使其运行:
defp deps do
[
{:amqp_client, git: "https://github.com/dsrosario/amqp_client.git", branch: "erlang_otp_19", override: true},
{:amqp, "~> 0.1.4"}
]
Run Code Online (Sandbox Code Playgroud)
结束
| 归档时间: |
|
| 查看次数: |
1312 次 |
| 最近记录: |