Zanurzam się w Scala i zauważyłem kogoś. Byłem całkiem zadowolony z Gradle w projektach java / groovy i wiem, że istnieje wtyczka scala dla Gradle.
Jakie mogą być dobre powody, by faworyzować sbt nad Gradle w projekcie Scala?
Zanurzam się w Scala i zauważyłem kogoś. Byłem całkiem zadowolony z Gradle w projektach java / groovy i wiem, że istnieje wtyczka scala dla Gradle.
Jakie mogą być dobre powody, by faworyzować sbt nad Gradle w projekcie Scala?
Odpowiedzi:
Zauważ, że jedną kluczową różnicą między SBT i Gradle jest zarządzanie zależnościami :
To prawda, że pamięć podręczna może się pogubić, ale nie jest prawdą, że Ivy nie rozumie rozwiązywania migawek. Eugene wyjaśnił ten punkt w innym wątku, być może na liście administratorów. Występuje problem z automatyczną aktualizacją SBT, który został rozwiązany w wersji 0.12.
To, czego Ivy nie obsługuje, o ile wiem, to publikowanie migawek w sposób, w jaki robi to Maven. Wydaje mi się, że powiedziałem to gdzie indziej, ale jeśli ktoś chce poprawić sytuację, moim zdaniem najlepiej jest poświęcić wysiłek pracy z zespołem Gradle, aby ponownie wykorzystać ich kod zarządzania zależnościami.
Chciałem tylko poinformować, że problemy z zależnościami migawek Ivy i Mavena były jednym z powodów, dla których Gradle ostatecznie zastąpił Ivy własnym kodem zarządzania zależnościami. To było duże zadanie, ale przyniosło nam wiele dobroci.
Ten tweet wspomina, że cała sytuacja może ewoluować w przyszłości:
Mark powiedział w przeszłości, że był zainteresowany wykorzystaniem Gradle zamiast Ivy do SBT.
(oba narzędzia mogą się od siebie uczyć )
Dla mnie kluczowe cechy SBT to:
fsc
).~test
dokona ponownej kompilacji i przetestuje projekt za każdym razem, gdy zapiszesz modyfikację.Wady to:
sbt to Scala DSL i Scala jest obywatelem pierwszej klasy, więc w zasadzie wydaje się, że pasuje.
Jednak sbt cierpi z powodu poważnych niekompatybilnych zmian między wersjami, co utrudnia znalezienie odpowiedniej działającej wtyczki dla zadania i uruchomienie jej.
Osobiście zrezygnowałem z czegoś, ponieważ sprawiało to więcej problemów niż rozwiązało. Właściwie przeszedłem na gradle.
Domyśl.
Sbt i gradle, oba są oparte na statycznie typowanych językach ... ale sbt ma kilka zalet: