2016-07-12 24 views
0

Paket A hängt von Paket B (0.1.0) ab. Ich kann Paket B ändern, es erneut veröffentlichen (0.1.1), und dann wieder zu Paket A wechseln, SBT sauber ausführen, SBT neu starten, dann Kompilieren, und es greift die neueste Version und versteht, dass die Klassen geändert haben .Ensime + Emacs verwendet keine letzten Klassen einer Abhängigkeit

Ensime tut jedoch nichts. Es scheint eine Erinnerung an die alte Klasse zu haben. Das Entfernen des .ensime_cache hilft nicht. Das erneute Erstellen der .ensime-Datei scheint zu zeigen, dass es die neueste Version des gewünschten Pakets auflöst, tut aber nichts. Das Schließen und erneute Öffnen der Dateien hilft nicht. Laufen M-x ensime macht nichts. Die Überprüfung der Klasse zeigt die alte Version, die scheinbar irgendwo lebt, aber ich weiß nicht wo.

Bitte helfen Sie mir zu verstehen, was ensime macht.

Antwort

0

OK - Das Problem war mein Verständnis davon, wie Emacs über ensime mit SBT kommuniziert. Ich hatte meine eigene SBT in einer Granate, von der ensime natürlich nichts wusste.

Wenn ich jedoch ensime-sbt, dann die clean/re-run, dann ensime nimmt die Änderungen und alle Bearbeitung kann friedlich voranschreiten. Es scheint also, dass es eine eigene interne sbt ausführt, auch wenn du ensime-sbt nicht explizit ausführst. Oder wenn es das nicht tut, ist der Effekt mindestens gleich ...