2017-01-27 1 views
3

Betrachten Sie das Szenario: Ich habe ein einfaches, von sbt verwaltetes Scala-Projekt in einem Verzeichnis namens foo.Ergebnisse der inkrementellen sbt-Kompilierung beim Verschieben des Projektverzeichnisses beibehalten

cd foo 
sbt compile 

Es dauert nun ein paar Sekunden und das Projekt wird korrekt kompiliert.

Nun, dank inkrementale Kompilierung SBT, wenn ich

laufen
sbt compile 

es beendet die Kompilierung Aufgabe in der Nähe von 0 Sekunden, da der Quellcode nicht geändert hat.

Aber wenn ich das foo Verzeichnis in bar

cd .. 
mv foo bar 

umbenennen und versuchen, es zu kompilieren wieder

cd bar 
sbt compile 

jetzt die Kompilierung Task erneut einige Sekunden dauert, damit die Ergebnisse nicht von der vorherigen Verwendung Zusammenstellung.

Gibt es eine Möglichkeit, die inkrementellen Kompilierungsergebnisse eines Projekts beizubehalten, auch wenn sich der absolute Pfad auf der Festplatte geändert hat?

+0

ok, scheinbar sbt speichert die Ergebnisse der inkrementellen Kompilierung mit einem absoluten Pfad, und deshalb bricht es. Jetzt, wie man es repariert? –

+0

Ich würde den sbt gitter channel benutzen :) das hört sich nach einer ziemlich umstrittenen Frage an. – marios

Antwort

0

Wie sich herausstellt, wird derzeit daran gearbeitet, inkrementelle Kompilierungsergebnisse cachefähig zu machen. Hier ist der relevante PR: https://github.com/sbt/zinc/pull/216.

Außerdem gibt es ein Problem (wird zum Zeitpunkt des Schreibens diskutiert), die Analyse von Zink völlig unabhängig von der Maschine zu machen. Siehe https://github.com/sbt/zinc/issues/218.

2

Sie können auch versuchen, Hoarder Plugin zu verwenden: https://github.com/romanowski/hoarder.

Ping mich auf Hoarder's Gitters bei Fragen/Probleme.

+0

Vielen Dank! Ich bin mir dessen bewusst, ich werde es bald versuchen! :) –

Verwandte Themen