2010-09-16 14 views
5

Dobrze teraz uczę się Scali i cieszę się nią bardzo; Mam nadzieję, że uruchomię w nim kolejne projekty, a nie Javę. Tym, co cieszę się mniej, jest (relatywnie) słabe wsparcie dla IDE. Zauważyłem, że zarówno IDEA, jak i Eclipse z wtyczką Scala (łącznie z nocnymi kompilacjami) są nieco niewiarygodne lub trudne w użyciu - chcę czegoś, na czym zawsze mogę polegać. Na przykład. wczoraj nie mogłem pobrać świeżej instalacji wtyczki eclipse +, aby w ogóle uruchomić testy, a nawet otworzyć okno edytora!Jak zbudować/przetestować Scala bez zależności IDE?

Rozważam przeskakiwanie pomiędzy Eclipse/IDEA w zależności od tego, które najlepiej pasuje do danego zadania, a co ważniejsze, zmniejszenie zależności od IDE do budowania i uruchamiania testów (ScalaTest). Nie jest to dla mnie banalne, odkąd wychowałem się na Javie w Eclipse; pozostawienie Eclipse SVN do używania GIT było początkowo wielką sprawą. Biorąc pod uwagę, że mam tylko czas, aby nauczyć się jednego narzędzia, czy powinien to być Ant, Maven, buildr, sbt, ....? Jak działają inne osoby?

Odpowiedz

10

Użyłem zarówno Mavena, jak i sbta ze Scalą i stwierdziłem, że oba są całkiem łatwe w użyciu.

Jednak SBT czuć się o wiele bardziej bliżej Scala jak budować jego pliki są zapisywane w samej Scala (w przeciwieństwie do XML w Maven) oraz funkcji SBT kompilacji REPL, ma ciągłą kompilację i testowanie itd

więc radziłbym użyć sbt do prostego projektu Scala.

Ale jeśli chcesz tworzyć standardowe projekty Java, takie jak WAR, EJB itp., Czuję, że Maven ma lepsze wsparcie dla nich.

Również Maven ma ogromny ekosystem wtyczek, który pozwala wykonywać praktycznie wszystko, zasięg kodu, raportowanie, sprawdzanie kodu standardowego, generowanie dokumentacji i wiele więcej.

1

EDYCJA: Uuuups. Przepraszam. Właściwie błędnie przeczytałem twoje pytanie i skomentowałem tylko IDE. Jeśli chodzi o budowanie projektu używam make;), ponieważ jest dobrze zintegrowany z Vim

podczas gdy nie chciałbym robić JAKIEGOKOLWIEK Projektu Java bez IDE, obecnie robię całkiem duży projekt właśnie w Vim . Wiem, że to dość "podejście z epoki kamiennej", ale działa dobrze.

Z jednej strony miałam dość powolnego/brakującego wsparcia Scala dla wszystkich IDE. Próbowałem Scala, netbeans i IDEA i znalazłem pracę z nimi (w Scali) raczej bolesne.

Z drugiej strony Scala ma pewne właściwości, które pomagają podczas pracy z prostym edytorem: możesz mieć więcej klas w jednym pliku, więc zazwyczaj definiuję cały pakiet w jednym pliku, który znowu nie rośnie zbytnio, ponieważ Scala klasa jest zazwyczaj bardzo (lub nawet bardzo) mała. Dlatego zwykle mam tylko dwa lub trzy pliki otwarte na raz, a więc nie potrzebuję zarządzania pakietami/plikami.

Nie można uzyskać składania kodu przez znaczniki języków, ale składanie według wcięcia działa dobrze, jeśli pozostaniesz przy konwencjach wcięcia Scala.

Jedną z rzeczy, która nie działa, jest automatyczne uzupełnianie. Ale znowu to powoduje, że piszę więcej luźno powiązanych obiektów;)

+0

Dobrze słyszeć o bardziej "hardcorowym" podejściu :) Rzeczą, która mnie martwiłaby o to byłoby ponowne faktoring. Zwykle nie poprawiam sytuacji za pierwszym razem i zależę od ponownego faktorowania czegoś więcej niż może powinienem. – Pengin

+1

W tym kontekście słyszałem, że emacs + sbt + ENSIME to dobre połączenie (i ENSIME dokonuje refaktoryzacji!). Więcej informacji na temat tego wątku scala-user: http://scala-programming-language.1934581.n4.nabble.com/Best-free-IDE-for-Scala-td2533572.html –

+0

@Pengin: jak napisano powyżej, mam skłonność pisać więcej luźno sprzężonych systemów klasowych z powodu braku automatycznego uzupełniania. Zwykle refaktoryzacja zajmuje mi około 5 minut lub mniej – Agl

3

Użyłbym SBT z IDEA. Chociaż tego nie próbowałem, wiem, że istnieje pewne wsparcie dla integracji SBT i IDEA.

W każdym razie, SBT to doskonała podstawa dla wszystkich potrzeb testowych w Scali &.

+0

Integracja SBT i IDEA jest lepsza niż kiedykolwiek wcześniej. To jest fantastyczne! – film42

1

Buildr obsługuje Scala i Javę jako języki pierwszej klasy, z obsługą ScalaCheck i ScalaSpecs, a także ma wystarczająco dużo wtyczek, aby sprawić, że będzie dobrym rywalem dla Maven.

0

Właśnie dodałem moje dwa centy. Myślę, że powinieneś spróbować także Netbeans. To ma być najbardziej przyjazny dla Scala spośród trzech głównych graczy (Eclipse, Idea i Netbeans).

I były dużo zabawy z NetBeans 6.8 i scala-2.8.0.r22602-b20100720020114

Należy uczciwie powiedzieć, że nie będzie teraz programowania Scala, gdyby nie było na wtyczka Netbeans. Spędziłem sporo czasu starając się, aby działał tak sprawnie z innymi, ale bez większego sukcesu.

Używam Netbeans do wywoływania i Ant do samodzielnej kompilacji. Informacje o konfigurowaniu Anta dla Scali tutaj: http://scriptlandia.blogspot.com/2007/04/how-to-compile-and-run-scala-program.html

Powiązane problemy