J'ai essayé d'intégrer Ejabberd dans une application Web Phoenix. Pour ce faire, j'ai essayé de suivre this tutorial. Les étapes sont les suivantes:Erreur lors de la compilation de la dépendance Ejabberd d'une application Phoenix avec Mix: impossible de compiler la dépendance: ejabberd, "mix compile" a échoué
a installé une boîte ubuntu/xenial64Vagrant.
Elixir installé selon le official guide.
Installé Phoenix selon le official guide.
installé certains paquets pour compiler avec succès les dépendances d'applications de semences du Phoenix:
sudo apt install build-essential libssl-dev libyaml-cpp-dev libyaml-dev libpython2.7-dev
J'ai ajouté la dépendance
ejabberd
au fichiermix.exs
:defmodule PhoenixEjabberd.Mixfile do use Mix.Project def project do [app: :phoenix_ejabberd, version: "0.0.1", elixir: "~> 1.2", elixirc_paths: elixirc_paths(Mix.env), compilers: [:phoenix, :gettext] ++ Mix.compilers, build_embedded: Mix.env == :prod, start_permanent: Mix.env == :prod, aliases: aliases(), deps: deps()] end # Configuration for the OTP application. # # Type `mix help compile.app` for more information. def application do [mod: {PhoenixEjabberd, []}, applications: [:phoenix, :phoenix_pubsub, :phoenix_html, :cowboy, :logger, :ejabberd, :gettext, :phoenix_ecto, :postgrex]] end # Specifies which paths to compile per environment. defp elixirc_paths(:test), do: ["lib", "web", "test/support"] defp elixirc_paths(_), do: ["lib", "web"] # Specifies your project dependencies. # # Type `mix help deps` for examples and options. defp deps do [{:phoenix, "~> 1.2.1"}, {: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"}, {:ejabberd, "~> 16.12", github: "processone/ejabberd"} ] end # Aliases are shortcuts or tasks specific to the current project. # For example, to create, migrate and run the seeds file at once: # # $ mix ecto.setup # # See the documentation for `Mix` for more info on aliases. defp aliases do ["ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"], "ecto.reset": ["ecto.drop", "ecto.setup"], "test": ["ecto.create --quiet", "ecto.migrate", "test"]] end end
Exécuté
mix do deps.get, compile
Vous avez une très grande quantité d'erreurs, principalement de fonctions et de variables indéfinies. J'ai mis le journal complet sur this Gist.
Pourquoi ces erreurs se produisent-elles? Est-ce que quelqu'un a réussi à compiler la dépendance ejabberd
? Comment? Merci pour votre temps :).