Wie kann SBT informiert werden, um bestimmte Scala-Versionen für Plugins zu verwenden?

9

Jetzt habe ich meine globalen sbt-Plugins ( ~/.sbt/plugins/build.sbt ) irgendwie vermasselt. Sie waren immer gut gegen Scala 2.9.1, das scheint die Version zu sein, die sbt 0.11.3 will, und alle Plugins (sbt-gpg-plugin, sbt-idea-plugin) werden gegen 2.9.1 veröffentlicht.

>

Nun, was auch immer ich mache, versucht es hartnäckig, sie gegen 2.9.2 zu finden:

%Vor%

Wie kann ich das beheben, also holt sbt die Plugins für Scala 2.9.1 wie zuvor?

Der Vollständigkeit halber sehen meine Dateien so nach den Vorschlägen:

%Vor%

%Vor%

%Vor%

Was noch schlimmer ist, das Problem besteht auch nach dem Entfernen ~/.sbt/plugins/build.sbt . Es gibt also keine Referenzen (zumindest für mich sichtbar) zu sbt-idea oder xsbt-gpg-plugin. Trotzdem kann ich kein Projekt mehr kompilieren, da sbt immer noch versucht, diese beiden Plugins zu finden. Episch scheitern.

    
0__ 01.08.2012, 22:52
quelle

3 Antworten

13

Sie könnten die Scala-Version des Plugins zur Verfügung stellen. Ich habe nicht ~ / .sbt / verwendet, aber ich denke, es wird auch funktionieren.

Das Folgende ist meine Projektkonfiguration, die Scala 2.9.2 als meinen Projektcompiler verwendet, und einige puign verwendet, die von Scala 2.9.1 kompiliert werden. Da Scala 2.9.1 und Scala 2.9.2 binärkompatibel ist, habe ich noch kein Problem.

%Vor%

Das Folgende ist die Plugin-Konfiguration:

%Vor%     
Brian Hsu 02.08.2012, 00:20
quelle
3

Einige Referenzen:

SBT-Plugins werden mit der Scala-Version versioniert, mit der sie erstellt wurden .

Du bist nicht der einzige ... Schon wieder , keine Antworten.

Und noch eine Fallstudie, diese könnte Antworten haben .

Ein möglicherweise relevantes Zitat? "Denken Sie daran, auch das Projekt / Plugins-Verzeichnis zu entfernen, denn wenn das Verzeichnis existiert, wird project / plugins.sbt ignoriert."

    
Richard Sitze 01.08.2012 23:35
quelle
0

Ok, ich ging zurück zu all den Ereignissen, die dazu geführt haben könnten. Und da ich feststellte, dass andere Projekte noch im Aufbau waren, begann ich zu verstehen, dass das Problem mit diesem speziellen Projekt B darin bestand, dass die beiden Plugins reguläre Abhängigkeiten des Projekts A waren davon abhängig.

Als sbt das Vorhandensein des GPG-Plugins, das ich in ~/.sbt/plugins/build.sbt auskommentierte, nicht anerkennen wollte, habe ich diese Datei in ~/.sbt/plugins.sbt umbenannt und wieder zurück. Diese Zwischenposition bedeutete irgendwie, dass die Plugins keine Plugins mehr waren (obwohl sie als addSbtPlugin hinzugefügt wurden), sondern regelmäßige Abhängigkeiten für das Projekt A , wenn ich das veröffentlichte.

Ich habe versucht, das vermischte A s ivy.xml in allen bekannten Ivy2-Cache-Verzeichnissen zu finden. Es war nicht möglich, den zu finden, den sbt offensichtlich gesehen hat.

Lange Geschichte, kurze Antwort: Ich musste die Version von A künstlich anheben, um die falsche ivy.xml irgendwo an einem versteckten Ort zwischenzuspeichern. Das zwang sbt, A mit dem korrekten ivy.xml wiederzufinden (nicht mehr abhängig von den Plugins).

Jetzt mache ich mir nur Sorgen, was passiert, wenn ich meine globalen Plugin-Einstellungen an Stelle setze: - #

Zukünftiger Rat: Schreiben Sie nie etwas in ~/.sbt/plugins.sbt . Wenn Sie sbt benötigen, um zu verstehen, dass Sie ~/.sbt/plugins/build.sbt geändert haben: Starten Sie Ihren Computer neu. Berühren Sie keine Datei.

    
0__ 01.08.2012 23:50
quelle

Tags und Links