Build-Tool sbt für Scala und Java erreicht Version 1.0

Das Werkzeug setzt nun auf Scala 2.12 und benötigt das JDK 8. Der inkrementelle Compiler Zinc soll in Version 1.0 mehr Performance liefern. Außerdem bietet sbt 1.0 einen Server, über den andere Werkzeuge Settings abfragen und Befehle ausführen können.

vorlesen Druckansicht
Build-Tool sbt für Scala und Java erreicht Version 1.0
Lesezeit: 3 Min.

Das Open-Source-Build-Tool sbt hat die wichtige Versionsnummer 1.0 und damit aus Sicht der Macher eine entsprechende Reife erreicht. Das im Frühjahr erklärte Ziel ist eine langjährige Stabilität und eine sanfte Migration vom Vorgänger sbt 0.13, der seinerseits vier Jahre existierte. sbt steht für Scala Build Tool beziehungsweise Simple Build Tool. Lightbend, die Firma hinter der Programmiersprache Scala, ist maßgeblich an der in der Community stattfindenden Entwicklung des Build-Werkzeugs beteiligt, das neben Scala auch Java unterstützt. sbt gilt als Standardwerkzeug für die Scala-Entwicklung und ist vergleichbar mit Maven oder Ant in der Java-Welt.

Der inkrementelle Scala-Compiler Zinc ist mit dem Versionssprung weiterhin Bestandteil von sbt, hat nun aber ein eigenes Repository auf GitHub, damit ihn auch andere Build-Werkzeuge einbinden können. Im Vergleich zum Zinc 0.13.13 bietet die Version 1.0 wohl deutlich verbesserte Performance, was vor allem daran liegt, dass er klassenbasierte Abhängigkeiten für das Name Hashing verwendet, während der Vorgänger die Abhängigkeiten auf Dateiebene verwaltete.

sbt 1.0 führt zudem ein Server-Feature ein, mit dem andere Werkzeuge wie Entwicklungsumgebungen zum einen Einstellungen abfragen und zum anderen Befehle über eine JSON API an sbt schicken können. Der Server lässt sich über die Kommandozeile mit dem Befehl server starten und verarbeitet anschließend sowohl direkt von der Konsole als auch über das Netzwerk empfangene Eingaben.

Neu ist auch die Implementierung von Gigahorse, einem HTTP-Client für Scala, der das parallele Herunterladen von Artefakten ermöglicht. Für das Library-Management haben die Macher zudem eine eigene API eingeführt, die eine zusätzliche Abstraktionsschicht zu Apache Ivy bietet. Auf die Weise lassen sich künftig potenziell andere Dependency-Management-Werkzeuge verwenden.

Das 1.0-Release verwendet Scala 2.12 für die Build-Definitionen und Plug-ins. Daher müssen die Autoren von Erweiterungen nicht mehr Scala 2.10 unterstützen. Der inkrementelle Compiler Zinc unterstützt wiederum Scala ab Version 2.10.2. Auf der Java-Seite benötigt sbt das JDK 8.

Weitere Details wie die Implementierung von Log4J2 für das Event-Logging lassen sich dem Blogbeitrag und den Release Notes entnehmen. sbt 1.0 adaptiert Semantic Versioning. Es soll über die gesamte 1.x-Linie binärkompatibel bleiben, im Vergleich zum Vorgänger ist es dagegen weder Source- noch binärkompatibel . Auch wenn die Migration von Version 0.13.x so sanft wie möglich sein soll, sind je nach Projekt einige Änderungen erforderlich. Daher hat das Team einen Migrationsleitfaden veröffentlicht. (rme)