web-dev-qa-db-de.com

IntelliJ IDEA 13: Neues Scala SBT-Projekt hat keine src-Verzeichnisstruktur generiert

Ich habe das Einführungsvideo auf der Jetbrains-Website verfolgt, um die IntelliJ IDEA 13.1 Community Edition für die Zusammenarbeit mit Scala einzurichten. Das Scala Plugin v0.36.431 wurde installiert. Während ich ein neues Scala-SBT-Projekt mit dem Assistenten erstellte, wurde im Projekt keine src/-Verzeichnisstruktur erstellt. Es wurden nur zwei sbt-Dateien generiert:

scala-course/
├── build.sbt
└── project
    └── plugins.sbt

Aus dem Video und anderen Dokumenten weiß ich, dass es eine src/-Verzeichnisstruktur geben sollte, einschließlich src/main/scala, src/test/scala usw. Sbt verwendet standardmäßig dieselbe Verzeichnisstruktur wie Maven für Quelldateien.

Ich kann diese Ordner manuell erstellen und als Quellstammverzeichnis markieren. Es ist jedoch trivial. Meine Frage ist also: Warum generiert der neue Projektassistent von IntelliJ IDEA die Verzeichnisstruktur nicht wie in Dokument erwähnt? Habe ich etwas falsch gemacht? Ich habe die Einstellungen überprüft und konnte nichts finden, was verwandt scheint.

27
aleung

Dank lpiepiora, mit seinem Hinweis finde ich den Grund heraus.

Da mein sbt neu installiert ist, enthält ~/.ivy2/cache/ und ~/.sbt/boot/ nichts. sbt ist erforderlich, um die erforderlichen Abhängigkeiten aus den Repositorys im Netzwerk herunterzuladen. Es kam vor, dass mein Proxy für das Internet etwas falsch gemacht hatte, der Download blieb hängen.

Wenn Sie IntelliJ IDEA beenden, während sbt im Hintergrund ausgeführt wird, wird beim nächsten Mal ein Fehler beim Warten auf Sperrdateien angezeigt. Sie müssen die Sperrdatei auf dem Dateisystem entfernen und IntelliJ IDEA erneut starten.

Nachdem das Netzwerkproblem behoben wurde, funktioniert alles wie versprochen. Es dauert einige Minuten (abhängig von der Netzwerkgeschwindigkeit), um die erforderlichen JAR-Dateien herunterzuladen. Nach Abschluss wird die Verzeichnisstruktur src/ erstellt.

9
aleung

Normalerweise sollten diese Ordner automatisch erstellt werden. Es kann jedoch eine Weile dauern - in meinem Fall dauert es einige Sekunden.

Stellen Sie beim Erstellen eines Projekts sicher, dass Sie Scala -> SBT ausgewählt haben, und fahren Sie dann mit dem Assistenten fort.

Sobald Sie auf Finish klicken, wird das Projekt geladen. Dieser Teil dauert einige Sekunden, und ich kann keinen src/main/scala oder src/test/scala sehen, bis er fertig ist . Beobachten Sie den unteren Rand des Bildschirms, um zu sehen, wann es fertig ist.

Loading Process

Sobald der Vorgang abgeschlossen ist, werden die Ordner angezeigt.

Loaded Done

Ist dies nicht der Fall, überprüfen Sie die Einstellungen. Die Create-Verzeichnisse für leere Inhaltsstammverzeichnisse sollten automatisch markiert sein. Sie können Use auto-import aktivieren, um Änderungen automatisch in build.sbt zu verbreiten.

Settings

Nach dem Ändern der Einstellungen (wenn die Änderung erforderlich ist) müssen Sie möglicherweise das Projekt aktualisieren (siehe Abbildung unten).

Refresh Settings

52
lpiepiora

Dies kann auch passieren, wenn Sie kein JDK ausgewählt haben. Aus irgendeinem Grund haben Sie nicht mehr die Möglichkeit, ein SDK auszuwählen. Stellen Sie daher sicher, dass Sie dieses zuvor konfiguriert haben. Um dies zu beheben, gehen Sie wie folgt vor:

From the welcome screen, go to 
Configure -> Project defaults -> Project structure and add the jdk.

Quelle: Was ist der Grund für "Fehler: Kann Java VM - ausführbare Datei in ausgewähltem JDK nicht ermitteln"?

10
Zaptree

Ich habe die Anweisungen in diesem Thread befolgt, aber ich hatte in der letzten Phase einen Java-Absturz in sbt mit der folgenden Konfiguration und ich denke, diese Informationen sind möglicherweise nützlich:

Das Problem trat bei IDEA 2016.2, sbt 0.13.8 auf (ich habe später versucht, mit 0.13.12 zu importieren, der Absturz war jedoch derselbe), Scala 2.11.8 und Ubuntu 16.04.

Die einzige Möglichkeit, dies zu erreichen, bestand darin, Java 8 anstelle von 9 zu verwenden. 

error: error while loading package, Missing dependency 'object Java.lang.Object in compiler mirror', required by /home/jbamaral/.sbt/boot   at xsbt.boot.Boot.main(Boot.scala)
... 
stack log here
...
[error] scala.reflect.internal.MissingRequirementError: object Java.lang.Object in compiler mirror not found.
0
João Amaral