Które narzędzie do kompilacji jest najlepsze dla Scali? Jakie są wady i zalety każdego z nich? Jak określić, którego z nich użyć w projekcie?
Które narzędzie do kompilacji jest najlepsze dla Scali? Jakie są wady i zalety każdego z nich? Jak określić, którego z nich użyć w projekcie?
Odpowiedzi:
Używamy Maven do tworzenia projektów Scala w pracy, ponieważ dobrze integruje się z naszym serwerem CI. Moglibyśmy oczywiście uruchomić skrypt powłoki, aby rozpocząć kompilację, ale z Mavena pochodzi kilka innych informacji, które chcemy wprowadzić do CI. To chyba jedyny powód, dla którego przychodzi mi do głowy użycie Mavena w projekcie Scala.
W przeciwnym razie po prostu użyj SBT. Otrzymujesz dostęp do tych samych zależności (naprawdę najlepsza część o maven, IMHO). Dostajesz także kompilację przyrostową, która jest ogromna. Możliwość uruchomienia powłoki wewnątrz projektu, co również jest świetne.
ScalaMock działa tylko z SBT i prawdopodobnie będziesz chciał użyć tego zamiast biblioteki do mockowania Java. Co więcej, znacznie łatwiej jest rozszerzyć SBT, ponieważ możesz napisać pełny kod scala w pliku kompilacji, więc nie musisz przechodzić przez wszystkie rygory związane z pisaniem Mojo.
Krótko mówiąc, po prostu użyj SBT, chyba że naprawdę potrzebujesz ścisłej integracji z serwerem CI.
Zagraża temu po prostu wygenerowanie wielu opinii; lepiej byłoby mieć jasną listę wymagań lub opis środowiska, wcześniejszą wiedzę itp.
FWIW, w tym wątku na liście dyskusyjnej scala jest więcej opinii .
Moje 2c to: Idź z kimś, jeśli nie masz określonych wymagań
gen-idea
zadanie i ponownie otwórz projekt: aktualizacje wykonane.compile
, test
, run
, doc
, publish-local
, console
) - w console
jest jednym z najlepszych cech.Niektórzy nienawidzą sbt, ponieważ używa Ivy do zarządzania zależnościami (nie mogę komentować jego zalet i wad, ale w większości przypadków nie jest to problem), niektórzy nienawidzą sbt, ponieważ określasz plik kompilacji w kategoriach Scala DSL zamiast XML. Niektórzy byli rozczarowani zmianą formatu sbt z v0.7 na v0.10, ale oczywiście migracja nie wpłynie na ciebie, jeśli zaczniesz od zera.