{"id":179169,"date":"2023-06-30T09:12:30","date_gmt":"2023-06-30T08:12:30","guid":{"rendered":"https:\/\/liora.io\/de\/?p=179169"},"modified":"2026-02-06T06:38:03","modified_gmt":"2026-02-06T05:38:03","slug":"sbt-in-scala","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/sbt-in-scala","title":{"rendered":"SBT in Scala"},"content":{"rendered":"<p><strong>In diesem Artikel stellen wir dir ein Entwicklungswerkzeug f\u00fcr deine Scala-Projekte vor. Es handelt sich dabei um SBT, das f\u00fcr &#8222;Simple Build Tool&#8220; steht.<\/strong><\/p>\nSBT Scala ist ein<a href=\"https:\/\/liora.io\/de\/open-source-definition\"> Open-Source-Baukasten,<\/a> der die Verwaltung deiner Projekte vereinfacht. Es erm\u00f6glicht dir, deine Abh\u00e4ngigkeiten zu verwalten, deine <a href=\"https:\/\/www.ionos.de\/digitalguide\/server\/knowhow\/jar-format\/\">JAR-Dateien<\/a> zu kompilieren, auszuf\u00fchren und zu verteilen. Lass uns einen genaueren Blick auf seine Hauptfunktionen werfen.\n<h3>Die wichtigsten Funktionen von SBT<\/h3>\n<h5>Verwaltung von Abh\u00e4ngigkeiten<\/h5>\nIn einer Konfigurationsdatei kannst du deine Abh\u00e4ngigkeiten verwalten und die Versionen angeben, die du ben\u00f6tigst. Die Auswahl der Version deiner Abh\u00e4ngigkeiten hilft dir, Konflikte zwischen ihnen zu vermeiden, Fehler und Sicherheitsl\u00fccken zu vermeiden und die Wartung zu vereinfachen. <strong>SBT Scala<\/strong> l\u00e4dt die Abh\u00e4ngigkeiten von einem Online-Bibliotheksrepository wie <a href=\"\/?smo=true\">Maven Central<\/a> herunter. Auf dieser Seite findest du die verf\u00fcgbaren Abh\u00e4ngigkeiten mit ihren Versionen und der Syntax, um sie in dein Projekt zu integrieren.\n<h5>Die Kompilation<\/h5>\nZun\u00e4chst l\u00e4dt <strong>SBT<\/strong> die Informationen deines Projekts aus der Konfigurationsdatei. Dann verwendet es das Compiler-System von Scala, um dein Programm in <strong>Bytecode-Dateien<\/strong> zu kompilieren, die von der <strong>JVM<\/strong> ausgef\u00fchrt werden k\u00f6nnen. Diese werden im Verzeichnis &#8222;target&#8220; abgelegt. SBT verwendet die inkrementelle Kompilierung, um die Kompilierung zu optimieren. Das bedeutet, dass er nur die \u00c4nderungen neu kompiliert.\n<h5>Das Ausf\u00fchren von Tests<\/h5>\n<strong>SBT<\/strong> bietet eine L\u00f6sung, um deinen Code mit dem Befehl `sbt test` zu testen, der alle Tests des Projekts ausf\u00fchrt. Mit `sbt testOnly` kannst du eine bestimmte Klasse testen oder auch die Tests einer Datei. Vergiss nicht, dass du mit Unit-Tests viel Zeit sparen kannst.\n\nSie ersparen es dir, deinen gesamten Code zu \u00fcberarbeiten, wenn ein Fehler entdeckt wird. Sie stellen sicher, dass ein Teil des Codes richtig in dein Projekt integriert wird.\n<h5>Das Ver\u00f6ffentlichen von JAR-Dateien<\/h5>\nSBT bietet dir an, dein Projekt mithilfe des Befehls `sbt package` in eine JAR-Datei zu komprimieren. Mit dem Befehl `sbt publish` kannst du dann deine JAR-Datei in einem Repository deiner Wahl ver\u00f6ffentlichen.\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\">SBT lernen<\/a><\/div><\/div>\n\n<h3>Definition der verschiedenen Modi<\/h3>\n<h5>Der interaktive Modus<\/h5>\nWenn du einfacher mit deinem Projekt interagieren m\u00f6chtest, bietet SBT Scala einen interaktiven Modus, der durch einfaches Ausf\u00fchren des Befehls `sbt` verf\u00fcgbar ist. Die Vorteile dieses Modus sind die Auto-Vervollst\u00e4ndigung deiner Befehle und einige andere Befehle, die in der Standard-SBT-Konsole nicht verf\u00fcgbar sind.\n<h5>Der fortlaufende Modus<\/h5>\nDieser Modus \u00fcberwacht deine <strong>Quelldateien und kompiliert sie automatisch bei jeder \u00c4nderung.<\/strong> Dadurch sparst du Zeit und das Debuggen wird einfacher.\n\nWenn du z. B. Tests durchf\u00fchren willst, starte im interaktiven Modus `sbt &#8222;~ test&#8220;`, und SBT wird die Tests automatisch im Hintergrund starten.\n<h3>Wie ist ein Projekt aufgebaut?<\/h3>\n<h5>Le fichier build.sbt<\/h5>\nDies ist die Konfigurationsdatei (du kannst sie auch anders nennen, sie muss nur mit sbt enden). Hier gibst du deine Abh\u00e4ngigkeiten, Compiler-Optionen, Plugins zur Erweiterung der SBT-Funktionen und Einstellungen f\u00fcr Ver\u00f6ffentlichungen, Tests und Eins\u00e4tze an.\n<h5>Das target Verzeichnis<\/h5>\nDieses Verzeichnis wird z. B. durch den Befehl `sbt compile` automatisch erstellt. Es enth\u00e4lt deine Klassendateien, JAR-, WAR- oder ZIP-Dateien, die w\u00e4hrend des Zusammenbaus des Projekts erzeugt wurden. Es enth\u00e4lt auch deine Dokumentationsdateien, die aus den Kommentaren im Quellcode erstellt werden. Cache-Dateien, um die Leistung beim Kompilieren zu optimieren, und schlie\u00dflich deine Testberichte. Es wird dringend davon abgeraten, diese Dateien selbst zu ver\u00e4ndern.\n<h5>Was ist der Projektordner?<\/h5>\nSie wird verwendet, um die Konfigurationsdateien deines Projekts zu speichern. Am h\u00e4ufigsten findet man dort die Datei &#8222;build.properties&#8220;, die die Baueigenschaften des Projekts enth\u00e4lt. Die Datei &#8222;build.sbt&#8220;, die weiter oben definiert wurde. Die Datei &#8222;Build.scala&#8220;, die eine Alternative zu &#8222;build.sbt&#8220; ist, au\u00dfer dass deine Konfiguration die Scala-Syntax verwendet. Diese Alternative wird f\u00fcr komplexere Projekte verwendet. Und schlie\u00dflich die Datei &#8222;plugins.sbt&#8220;, die also die verwendeten SBT-Plugins enth\u00e4lt. Diese f\u00fcgen Funktionen hinzu, wie z. B. Testverwaltung, Kompilierung der Dokumentation oder Codegenerierung.\n<h3>Die wichtigsten Befehle in SBT<\/h3>\n<table>\n<thead>\n<tr>\n<th>Befehl<\/th>\n<th>Beschreibung<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>sbt<\/code><\/td>\n<td>Startet die sbt-Interaktionssitzung<\/td>\n<\/tr>\n<tr>\n<td><code>compile<\/code><\/td>\n<td>Kompiliert den Scala-Code<\/td>\n<\/tr>\n<tr>\n<td><code>test<\/code><\/td>\n<td>F\u00fchrt Tests im Projekt aus<\/td>\n<\/tr>\n<tr>\n<td><code>run<\/code><\/td>\n<td>F\u00fchrt das Hauptprogramm des Projekts aus<\/td>\n<\/tr>\n<tr>\n<td><code>clean<\/code><\/td>\n<td>L\u00f6scht das kompilierte Ausgabe- und Zwischencache<\/td>\n<\/tr>\n<tr>\n<td><code>package<\/code><\/td>\n<td>Erstellt ein JAR-Archiv des Projekts<\/td>\n<\/tr>\n<tr>\n<td><code>dependencyTree<\/code><\/td>\n<td>Zeigt eine Baumstruktur der Abh\u00e4ngigkeiten an<\/td>\n<\/tr>\n<tr>\n<td><code>console<\/code><\/td>\n<td>\u00d6ffnet die Scala-Interpreter-Konsole<\/td>\n<\/tr>\n<tr>\n<td><code>reload<\/code><\/td>\n<td>L\u00e4dt die Build-Definition neu<\/td>\n<\/tr>\n<tr>\n<td><code>exit<\/code><\/td>\n<td>Beendet die sbt-Interaktionssitzung<\/td>\n<\/tr>\n<tr>\n<td><code>help<\/code><\/td>\n<td>Zeigt die Hilfe f\u00fcr die sbt-Befehle an<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\nWenn du mehr \u00fcber die Technologien erfahren m\u00f6chtest, die im Beruf des <a href=\"https:\/\/liora.io\/de\/weiterbildung-data-engineer\">Data Engineers<\/a> zum Einsatz kommen, dann schau dir unten unseren speziellen Kurs an!\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/weiterbildung-data-engineer\">Data Engineer Weiterbildung<\/a><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Artikel stellen wir dir ein Entwicklungswerkzeug f\u00fcr deine Scala-Projekte vor. Es handelt sich dabei um SBT, das f\u00fcr &#8222;Simple Build Tool&#8220; steht. SBT Scala ist ein Open-Source-Baukasten, der die Verwaltung deiner Projekte vereinfacht. Es erm\u00f6glicht dir, deine Abh\u00e4ngigkeiten zu verwalten, deine JAR-Dateien zu kompilieren, auszuf\u00fchren und zu verteilen. Lass uns einen genaueren Blick [&hellip;]<\/p>\n","protected":false},"author":76,"featured_media":179170,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2476],"class_list":["post-179169","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-dev"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/179169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/76"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=179169"}],"version-history":[{"count":1,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/179169\/revisions"}],"predecessor-version":[{"id":217426,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/179169\/revisions\/217426"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/179170"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=179169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=179169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}