2016-04-02 2 views
3

Ich möchte in der Lage sein, mithilfe von sbt, sowohl in IntelliJ und von einer Befehlszeile aus zu erstellen. Wie mache ich das? Der Standardwert scheint darin zu liegen, dass beide die gleichen Verzeichnisse für Objektdateien verwenden, und die beiden Builds kollidieren oft. Mir geht es gut, dass sie nur zwei völlig unabhängige Sätze von Ausgabedateien in verschiedenen Verzeichnissen erstellen.Mit Scala + sbt, wie können Sie gleichzeitig IntelliJ-Builds und Befehlszeilen-Builds erstellen?

(Ich will oft eine Befehlszeile starten und etwas tun, wie ~ publishM2, während immer noch Dinge wie laufen Tests innerhalb Intellij tun.)

Ich benutze IntelliJ 2016.01.01.

+1

Sie können manuell ein 'Rebuild ...' in IntelliJ oder ein 'clean' in der sbt-Konsole ausführen; Dies funktioniert, macht aber die Kompilierungszeit langsamer (aufgrund der inkrementellen Kompilierung). Es ist langweilig, aber es funktioniert und so mache ich es derzeit. Alternativ könnten Sie versuchen, mit den Einstellungen des Compiler-Ausgabeverzeichnisses in IntelliJ zu experimentieren; Auschecken Datei -> Projektstruktur -> Module -> (wählen Sie ein Modul) -> Pfade Registerkarte. Nicht sicher, ob es funktioniert, insbesondere nicht sicher, ob es auf den Standard zurückgesetzt wird, wenn Sie Ihre Datei build.sbt aktualisieren. – PermaFrost

+0

Die manuellen Dinge sind das, was das Problem verursacht; Ich habe einen fortlaufenden Build, der von der Befehlszeile ausgeführt wird, so dass das Erstellen von Intellij nur Probleme verursacht. –

+0

Ich denke, Sie könnten Recht haben, Pfade im Tab Pfade zu ändern - ich gebe es eine Chance. –

Antwort

0

(Update: Ich denke, das ist nur besser als nur beide Systeme den gleichen Ausgabepfad verwenden. Siehe Kommentare für Sperren Probleme, und Einstellungen auf dieser Seite scheinen nicht gespeichert werden - Sie müssen dies jedes Mal tun . Sie starten)

Dank @PermaFrost, ich glaube, Sie nur die Ausgangspfade für IntelliJ in Datei ändern kann -> Projektstruktur -> Module -> (ein Modul auswählen) -> Registerkarte Pfade wie folgt aus:

enter image description here

+1

Auch wenn dies hilft, hat sbt viele Probleme, mehr als einen Prozess gleichzeitig auszuführen. Wenn ich versuche, 2 verschiedene Projekte in 2 verschiedenen Ordnern zu kompilieren, bekomme ich ständig etwas wie 'Warten auf Sperre ~/repository/.sbt.ivy.lock, um verfügbar zu sein ...' – pedrorijo91

+1

Nach meiner Erfahrung das Warten auf das Schloss Datei passiert nur, wenn Sie libraryDependencies und so aktualisieren. Die meiste Zeit wird es die Sperre irgendwann bekommen und gut funktionieren, ich sehe es nur selten auf unbestimmte Zeit. Aber Ihre Laufleistung kann variieren. – PermaFrost

+1

Die Verwendung von Coursier vermeidet die globale Efeu-Sperre – pfn