Sbt (software) - sbt (software) - Wikipedia
Původní autoři | Mark Harrah |
---|---|
Vývojáři | Lightbend a komunita |
Stabilní uvolnění | |
Úložiště | |
Napsáno | Scala |
Operační systém | Cross-platform |
Plošina | Jáva |
Typ | Vytvářejte automatizaci |
Licence | Licence BSD |
webová stránka | scala-sbt |
sbt je open-source nástroj pro sestavení pro Scala a Jáva projekty podobné Apache Maven a Mravenec.
Jeho hlavní rysy jsou:
- Nativní podpora pro kompilaci kódu Scala a integraci s mnoha Scala testovací rámce
- Kontinuální kompilace, testování a nasazení
- Inkrementální testování a kompilace (znovu se kompilují pouze změněné zdroje, znovu se spustí pouze ovlivněné testy atd.)
- Vytvářejte popisy napsané ve Scale pomocí a DSL
- Správa závislostí pomocí Apache Ivy (který podporuje úložiště formátu Maven)
- Integrace s interpretem Scala pro rychlou iteraci a ladění
- Podpora pro smíšené projekty Java / Scala
sbt je de facto vytvořit nástroj v komunitě Scala,[3] používá Zvedněte webový rámec[4] a Hrajte Framework.
Obchodní prodejna Scala, Lightbend Inc., nazval sbt „pravděpodobně nejlepším nástrojem pro vytváření projektů Scala“, přičemž uvedl, že jeho dvě nejvýznamnější vlastnosti jsou přírůstková kompilace a interaktivní shell.[5] Když je zadán režim nepřetržité kompilace, kompilátor Scala je instancován pouze jednou, což eliminuje následné náklady na spuštění, a jsou sledovány změny zdrojových souborů, takže jsou překompilovány pouze ovlivněné závislosti. Interaktivní konzole umožňuje průběžné úpravy nastavení sestavení a vstup do Scala REPL spolu se všemi soubory tříd projektu.[6] Popularita přírůstkové kompilace přiměla Typesafe extrahovat tuto funkci ve formě nezávislé komponenty zvané Zinek.[5]
sbt se už vracel zpět do standardní knihovny Scala dříve, když bylo ve Scale 2.9 přijato jeho procesní API.[7]
Dějiny
sbt poprvé veřejně oznámil 18. prosince 2008 Mark Harrah - jeho původní autor. Původně to byla zkratka pro „Simple Build Tool“, nyní je však známá jednoduše jako „sbt“.[8]
Vytváření souborů
Sestavení sbt lze definovat pomocí a .sbt
soubor [9] Níže je uveden příklad build.sbt
definice sestavení:
val ScalaTest = „org.scalatest“ %% "nejškálovější" % "3.0.5"val akkaVersion = "2.4.2"val akkaActor = „com.typesafe.akka“ %% "akka-herec" % akkaVersionval akkaCluster = „com.typesafe.akka“ %% "akka-cluster" % akkaVersion// Nastavte verzi Scala používanou touto sestavou na 2.12.8.ThisBuild / scalaVersion := "2.12.8"ThisBuild / verze := „0.1.0-SNAPSHOT“ThisBuild / organizace := „com.example“líný val vykořenit = (projekt v soubor(".")) .agregát(ahoj jádro) .záleží na(ahoj jádro) .nastavení( název := "Ahoj", // Přidat jednu závislost pro testy. závislosti na knihovně += ScalaTest % Test )líný val ahoj jádro = (projekt v soubor("jádro")) .nastavení( název := „Hello Core“, závislosti na knihovně += ScalaTest % Test, // Přidat více závislostí. závislosti na knihovně ++= Seznam(akkaActor, akkaCluster) )
Příklad použití
sbt může být vyvolán pro každý příkaz sestavení, nebo může vstoupit do interaktivního režimu, pokud není zadán žádný příkaz. Postup čištění produktů sestavení aktuálního sestavení:
$ sbt čisté
Na stejném řádku lze použít více příkazů. Spuštění jediného testu s názvem „Foo“ a následné publikování exportovaných sklenic:
$ sbt „testOnly Foo“ publikovat
Rozšiřitelnost a integrace
Funkčnost sbt lze rozšířit pomocí architektury pluginu.[10] Byla vytvořena speciální webová stránka pro doplňky od komunity, které pokrývají různé oblasti, jako je podepisování, balení, publikování a vydávání artefaktů, připojení k dalším službám, jako jsou blogy a databáze, nebo integrace s dalšími technologiemi, jako je nasazení na platformu Android.[11]
Existují pluginy pro automatické vytváření souborů projektu pro Zatmění a IntelliJ IDEA IDE. Na druhou stranu, IntelliJ IDEA plugin umožňuje integrovat konzolu sbt do IDEA a projekty se mohou rozhodnout použít sbt pro stavbu.
Srovnání a kritika
Stejně jako u většiny softwarových nástrojů si sbt našla obhájce i kritiky. Často se porovnává proti Apache Maven, což je standardní nástroj pro vytváření ve světě Java. Zejména jazyk specifický pro doménu použitý pro sbt build soubory přitahoval kritiku jako záhadnou ve srovnání s čistě deklarativním přístupem Mavena XML soubory. Dále byla zavedena nekompatibilní změna ve formátu a rozložení souboru s skokem verze z 0,7 na 0,10. Vzhledem k vyspělosti Maven a sbt, že jsou poměrně mladí, bylo také řečeno, že Maven poskytuje větší počet pluginů a že dokumentace sbt chybí, i když jiní říkají, že kvalita dokumentace se zlepšuje.[12]
Projekt sbt používá sbt k vlastnímu sestavení a považuje to interní testování je pozitivní vlastnost. Do Debian projekt je však považován za kruhová závislost, které se snaží minimalizovat. Výsledkem je, že sbt ještě není v Debianu.[13]
Viz také
Reference
- ^ [1]
- ^ eed3si9n (02.11.2020). „Oznámit: sbt 1.4.2“. eed3si9n.com. Citováno 2020-11-07.
- ^ Veřejná úložiště hostovaná na githubu, která zmiňují sbt
- ^ Začínáme s Lift
- ^ A b „Zinek a přírůstková kompilace“. blog společnosti typesafe. 13. srpna 2012. Citováno 22. srpna 2012.
- ^ Goldin, Evgeny. "sbt Scala Build Tool". Citováno 7. května 2012.
- ^ „Scala 2.9.0 final“. 12. května 2011. Citováno 22. srpna 2012.
- ^ Často kladené otázky
- ^ sbt: definice sestavení .sbt
- ^ „Pluginy“. sbt. Citováno 17. října 2014.
- ^ „komunitní pluginy sbt“. Citováno 17. října 2014.
- ^ Coda Hale (29. listopadu 2011). „Zbytek příběhu“. Citováno 22. srpna 2012. Toto je položka blogu, která dává kontext propojenému e-mailem ve kterém jsou nastíněny problémy s SBT.
- ^ „Protokoly hlášení chyb Debianu - # 639910, RFP: jednoduchý nástroj pro sestavení - pro projekty Scala a Java“. Citováno 28. června 2015., zahrnuje konverzaci s vývojářem sbt.