Ich habe ein Hex-Paket ( Channels ) erstellt, das optional von einem anderen abhängt ( AMQP ). Meine Implementierung basiert auf Ectos optionaler Abhängigkeit von Mariaex.
In Kanälen mix.exs:
%Vor%In der Channels-Datei, die von AMQP abhängt:
%Vor% Die Anwendung wird ordnungsgemäß gestartet, und der Test wird ebenfalls ausgeführt (einschließlich derjenigen, die von AMQP mix test --include amqp_server
abhängen).
Aber wenn ich versuche, das Paket von einem anderen Projekt zu verwenden, treten einige Probleme auf:
In meinem Projekt füge ich meiner Datei mix.exs Folgendes hinzu:
%Vor%Wenn ich versuche, die Anwendung zu starten oder die Tests auszuführen, erhalte ich den folgenden Fehler:
%Vor% Ich füge AMQP als Abhängigkeit hinzu, aber es scheint, dass Code.ensure_loaded?(AMQP)
den Wert false zurückgibt und daher Channels.Adapter.AMQP
nicht definiert ist.
Ich habe festgestellt, dass bei der Kompilierung Kanäle vor AMQP kompiliert werden:
%Vor%Kann dies die Ursache meines Problems sein? Wenn ja, gibt es eine Möglichkeit, über die Kompilierreihenfolge meiner Abhängigkeiten zu entscheiden?
Tags und Links elixir