Stand: 2013-01-29
Scala IDE installieren und für das Play-Framework einrichten
Wie Eclipse zur Scala-Entwicklungsumgebung ‘Scala IDE 2.0’ wird und welche Einstellungen für flüssiges Arbeiten mit dem Play-Framework hilfreich sind.
Inhalt
Voraussetzungen
Das JDK und das Play-Framework (Version 2.x) sind installiert. Um den Import eines Play-Projekts durchzuführen, ist außerdem ein solches erforderlich.
Eclipse und Scala-Plugin installieren
- Lade Eclipse Indigo (3.7) herunter (ich habe die Variante "classic" gewählt).
- Entpacke Eclipse in ein beliebiges Verzeichnis.
- Starte Eclipse und öffne den Assistenten zur Installation von Plugins über das Menü "Help > Install new Software ...".
- Trage im Feld "Work with" den URL des Scala-IDE-Plugins ein:
http://download.scala-ide.org/sdk/e37/scala29/stable/site/
und klicke auf "Add..." . Den jeweils aktuellen Link findest du auf der Scala-IDE-Website.
Danach geht ein kleiner Dialog auf, wo du noch einen beliebigen Namen (z. B. "Scala IDE") für die Site eingibst. - Nun sollte eine Liste mit verfügbaren Paketen erscheinen. Wähle "Scala IDE for Eclipse" aus. Weiter geht es mit "Next >", dem abnicken der Lizenzbedingungen und schließlich "Finish".
Nach einem Neustart von Eclipse ist die Scala-Perspektive verfügbar.
Eclipse-Einstellungen
Öffne die Eclipse-Einstellungen über das Menü "Window > Preferences".
- Wähle unter "General > Workspace" den Punkt "Refresh using native hooks or polling" aus. Damit bekommt Eclipse mit, wenn Play ein Template kompiliert hat und kann dann sofort den Code prüfen, der das Template verwendet.
- Wähle unter "General > Editors > File Associations" den Dateityp "*.html" aus und füge im unteren Bereich mit "Add..." den Text-Editor ein. Markiere den soeben eingefügten Editor und mach ihn mit "Default" zum Standard, sonst gehen Templates im integrierten Browser auf, was nicht besonders hilfreich ist.
In Zukunft wird es vielleicht möglich sein, an dieser Stelle den Scala-Editor anzugeben, aber bisher führt das lediglich zu einer Fehlmeldung beim Öffnen von Templates.
Abschließend bestätigst du die Änderungen mit "Ok".
Play-Projekt in Eclipse importieren
Starte die Play-Konsole und rufe dort eclipsify
(ab Play 2.1 eclipse
) auf. Nun kannst du das Projekt in Eclipse über das Menü "File > Import" mit dem Punkt "General > Existing Projects into Workspace" importieren.
Damit geänderte Dateien sofort kompiliert werden, startest du die Anwendung auf der Play-Konsole mit ~run
(siehe Abschnitt Using sbt features). Die Tilde sorgt dafür, dass der Compiler automatisch bei Dateiänderungen anspringt und nicht erst, wenn du die Play-Anwendung im Browser aufrufst. Falls es nicht erforderlich ist, die Anwendung während der Entwicklung auszuführen, reicht statt ~run
auch das Kommando ~compile
.
Anpassungen der ignore-Datei
Bei der Arbeit im Team sollten die Eclipse-Konfigurationsdateien nicht in die Versionsverwaltung übernommen werden. Die ignore-Datei (zum Beispiel .gitignore oder .hgignore) sollte deshalb folgende Einträge enthalten:
# Eclipse .settings .cache .project .classpath .scala_dependencies bin
Debugger
Starte die Play-Konsole im Debug-Modus:
cd pfad/zur/play-anwendung play debug run
Führe in Eclipse folgende Schritte aus, um den Debugger zu konfirieren und eine Sitzung zu starten:
- Klicke mit der rechten Maustaste auf das Projekt und wähle im Kontextmenü "Debug As > Debug Configurations ..." aus.
- Wähle in dem Konfigurationsdialog "Remote Java Application" aus und klicke dann oben links auf das Symbol "New launch configuration".
- In dem Fomular trägst du als Port 9999 ein und klickst auf "Apply" und abschließend auf "Close" oder "Debug", je nachdem ob du den Debugger sofort starten willst oder nicht.
Empfehlenswert ist noch, die Debugger-Konfiguration als Favorit hinzuzufügen, damit man den Debugger schneller aufrufen kann. Dazu setzt du in dem Kästchen "Display in favorites menu" den Haken bei "Debug" und übernimmst die Änderung mit "Apply".

Ab jetzt kann der Debugger einfach über das Favoritenmenu (Käfer-Symbol) gestartet werden.
Falls der Fehler "Failed to connect to remote VM. Connection refused." auftritt, kommen vor allem diese Ursachen in Frage:
- Play wurde nicht im Debug-Modus gestartet oder
- Host oder Port wurde nicht korrekt angegeben oder
- es wird zum zweiten Mal versucht einen Debugger anzuhängen.
Korrekte Einrückungen
Die Scala-Konvention ist eine Einrückung mit zwei Leerzeichen, aber Eclipse kommt in den Standardeinstellungen etwas durcheinander; mal werden zwei, mal vier Zeichen eingrückt. Es scheint so, als würden in manchen Fällen statt der Scala- die Java-Regeln verwendet.
Bei mir hat es geholfen in den Einstellungen unter "Window > Preferences > Java > Code Style > Formatter" auf "Edit ..." zu klicken und in dem erscheindenden Dialog im Register "Indentation" als "Tab policy" "Spaces only" auszuwählen und die "Indentation size" sowie die "Tab size" auf den Wert 2 zu setzen. Zum Speichern muss noch der Profilname oben geändert und dann auf "OK" geklickt werden.
Alternativen
- IntelliJ IDEA mit Scala-Plugin. Als leicht eingeschränkte "Community Edition" ist es kostenlos; in der kostenpflichtigen "Ultimate Edition" gibt es außerdem ein Play-Framework-Plugin, das zum Beispiel die Template-Syntax unterstützt.
- NetBeans mit Scala-Plugin, kostenlos
Insgesamt kommt mir die Scala-Unterstützung der Eclipse Scala IDE besser als die von IntelliJ IDEA vor. Dafür bietet IntelliJ mehr Refactorings und in anderen Bereichen wie JavaScript mehr Komfort als Eclipse.
Weitere Information
- Setup and use Play framework 2.0 in Scala IDE 2.0
- Spickzettel mit Eclipse-Tastenkürzeln
- Play 2.1 Plugin für Eclipse (noch experimentell), unterstützt die Scala Templates und Routing-Dateien
Wesentliche Änderungen
- 2013-01-21 Abschnitt zu korrekten Einrückungen ergänzt