Überprüfen Sie die Verfügbarkeit optionaler Abhängigkeiten in Elixir

9

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?

    
jcabot 27.05.2016, 08:39
quelle

1 Antwort

2

Als Dogbert darauf hinwies, dass es mein Fehler war, weil ich vergessen hatte, die neueste Version des Pakets auf hex zu schieben. Ich habe es getan und richtig gearbeitet.

Die Angabe der Abhängigkeit als optional ändert die Kompilierreihenfolge.

    
jcabot 27.05.2016, 11:49
quelle

Tags und Links