Jestem nowy w SBT i nie jestem pewien, jak rozpocząć projekt. Czy ktoś może wskazać mi przewodnik dla początkujących do tworzenia projektu typu Hello World lub dać mi kilka wskazówek?

Moje preferowane IDE to IDEA. Uruchomiłem sbt-idea zgodnie z instrukcją na stronie wtyczek IDEA. W tej chwili jestem trochę zdezorientowany, ponieważ

  • nie ma utworzonych folderów źródłowych - gdzie / jak mam je utworzyć i skąd SBT będzie wiedział, gdzie szukać?
  • dlaczego próbuje użyć Scali 2.8.1, skoro już umieściłem scalaVersion := "2.9.0" w pliku build.sbt? Oznacza to, że IDEA nie rozpoznaje object HelloWorld extends App {}.
  • instrukcje na powyższej stronie wtyczek sugerują zmianę opcji „Przed uruchomieniem” w „Konfiguracji uruchomienia (w tym domyślnej konfiguracji uruchomienia)”. Istnieje 13 różnych domyślnych konfiguracji dla różnych wymienionych rzeczy – którą zmienić? Czy powinienem tworzyć nowy? Czy te domyślne konfiguracje są tylko dla tego projektu, czy wpłyną negatywnie na wszystkie moje inne projekty, które nie używają SBT?

Dzięki.

11
Luigi Plinge 12 sierpień 2011, 15:12

3 odpowiedzi

Najlepsza odpowiedź

To zadziałało dla mnie:

Najpierw uruchom sbt i wtyczkę gen-idea...

  1. Pobierz sbt-launch.jar i utwórz skrypt do uruchomienia zgodnie z opisem na wiki SBT Github.
  2. Utwórz katalog dla swojego nowego projektu, taki jak (w systemie Linux) ~/myCode/myNewProject i przejdź do tego katalogu
  3. Uruchom polecenie sbt. Powinno to pobrać biblioteki scala i utworzyć katalogi 'projekt' i 'docelowe'.
  4. Przejdź do katalogu „projekt”.
  5. Utwórz nowy plik „build.sbt” w tym katalogu z następującymi wierszami, zgodnie z opisem we wtyczce sbt-idea Wiki Github:

    resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
    
    addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.0.0")
    
  6. Wróć do głównego katalogu projektu, takiego jak ~/myCode/myNewProject. Uruchom sbt. Powinien pobrać wtyczkę gen-idea.

  7. Z konsoli sbt (która powinna być teraz uruchomiona) uruchom polecenie gen-idea. Powinien tworzyć katalogi projektów IDEA. Dla mnie emituje również obfite ostrzeżenia.

Teraz uruchom wtyczkę konsoli IDEA SBT...

  1. Otwórz IDEA i zainstaluj wtyczkę „SBT” z menedżera wtyczek i uruchom ponownie IDEA. (Zauważ, że jest to wtyczka IDEA, a nie wtyczka sbt opisana powyżej.) Skonfiguruj wtyczkę SBT zgodnie z opisem na jej wiki (uruchom konfiguracje, lokalizacja sbt- uruchom.jar itp).
  2. Otwórz świeżo wygenerowany projekt IDEA w IDEA.
  3. Umieść swój kod i inne rzeczy w oczekiwanych domyślnych katalogach zgodnie z opisem na sbt wiki w sekcji „Układ katalogu”< /a>. Musisz stworzyć te katalogi samodzielnie - sbt nie tworzy ich automatycznie. Katalogi 'src' i 'test' powinny być na tym samym poziomie, co katalogi 'project' i 'target' utworzone przez sbt.
  4. Utwórz nowy plik 'build.sbt' i umieść go w ~/myCode/myProject (lub jakkolwiek to nazwałeś). Ponieważ dopiero rozgryzam sbt, mój jest jak dotąd prosty - po prostu wyznacza scalatest jako zależność i używa Scala 2.9:

    name := "myProject"
    
    version := "0.1"
    
    organization := "me"
    
    libraryDependencies += "org.scalatest" % "scalatest_2.9.0" % "1.6.1"
    
    scalaVersion := "2.9.0"
    
  5. Wpisz polecenie reload w konsoli SBT na dole ekranu IDEA. Powinien pobrać dla Ciebie scalatest i Scala 2.9. Może trzeba też uruchomić „aktualizację”.

16
om-nom-nom 4 kwiecień 2012, 19:16
3
Dzięki za szczegółowy przewodnik i przydatne linki. Może lepiej umieścić plik build.sbt w kroku 5 w ~/.sbt/plugins/, jak sugeruje wiki, ponieważ od tego czasu nie musisz tego robić dla każdego projektu... w systemie Windows musisz utworzyć ten katalog się w `Users\yourname\`, używając wiersza poleceń. W każdym razie, teraz skonfigurowałem foldery zgodnie z układem katalogów w wiki sbt, działa dobrze!
 – 
Luigi Plinge
12 sierpień 2011, 21:28

Napisałem bardzo krótki przewodnik o tym. nie jest przeznaczony do bycia przewodnikiem SBT — nie ma sposobu na pokonanie SBT Wiki za to. Byłoby to również bezcelowe, ponieważ można po prostu przyczynić się do samej wiki.

Ale myślę, że mój bardzo krótki przewodnik sprawi, że będziesz działał tak, jak chcesz.

Jeśli chodzi o tworzenie katalogów, odpowiedź, którą otrzymałem, była taka, że ​​SBT oczekuje, że IDE sobie z tym poradzi - nie podoba mi się to podejście, ale wtyczka może załatwić sprawę. Zobaczysz, że instaluję wtyczkę sbt eclipse, aby zrobiła to za mnie, mimo że sam używam IDEA (kiedy używam IDE).

Pamiętaj też, że najlepiej byłoby użyć zarówno wspomnianej wtyczki IDEA dla SBT, jak i wtyczki SBT dla IDEA. Zobacz listę wtyczek tutaj.

O ile wtyczka IDEA nie rozwinęła się bardzo, naprawdę musisz wygenerować konfigurację IDEA z samego SBT -- IDEA nie "odczyta" twojej konfiguracji. To właśnie robi wtyczka SBT dla IDEA. Zainstaluj go i sbt gen-idea. Spodziewam się, że to rozwiąże problem, o którym wspomniałeś.

Zauważ jednak, że wersja Scali, której używasz do kompilacji projektu, i wersja Scali, której SBT używa dla siebie, są rzeczywiście różne. To nie jest problem, jest zgodnie z oczekiwaniami. Z twojego pytania nie jestem pewien, czy wspomniana wersja 2.8.1 jest używana przez SBT, czy też przez IDEA - a nawet używana do kompilacji twojego projektu, co wskazuje, że coś nie działa.

Gdzie w ogóle czy umieściłeś wspomniany przykład? Powinieneś postępować zgodnie z hierarchią katalogów w stylu maven, co oznacza umieszczenie go w src/main/scala/ i ewentualnie podkatalogu związanego z pakietem, jeśli również przestrzegasz konwencji Java.

I spróbuj skompilować z sbt, aby upewnić się, że działa, zanim przejdziesz do IDEA.

4
Daniel C. Sobral 12 sierpień 2011, 19:21
Dziękuję. Widziałem twój przewodnik, który był pomocny, ale nie wiedziałem, że używasz wtyczki Eclipse do tworzenia katalogów! Nie używałem wcześniej Mavena, więc nie jestem zaznajomiony z jego strukturą. Umieściłem moje pliki źródłowe w katalogu project i nie zadziałało, ale działa, gdy przenoszę je we właściwe miejsce!
 – 
Luigi Plinge
12 sierpień 2011, 21:21
W takim przypadku spójrz na pytanie „Struktura aplikacji Scala”.
 – 
Daniel C. Sobral
12 sierpień 2011, 22:11

Zwykle umieszczam src w folderach "src/test/scala" i "src/main/scala". sbt-idea doda te foldery jako folder źródłowy/testowy w pomyśle.

Sam sbt potrzebuje Scali 2.8.1, ale ta wersja nie ma nic wspólnego z wersją twojego kodu. Jeśli spróbujesz skompilować jakieś źródło, sbt pobierze Scala 2.9.0.

0
Fabian 12 sierpień 2011, 15:44
Sbt-idea nie dodał żadnych folderów źródłowych, kiedy go uruchomiłem. Umieścił obie wersje Scali w zewnętrznych bibliotekach, ale nadal nie rozpoznaje klasy App.
 – 
Luigi Plinge
12 sierpień 2011, 17:05