2014-11-06 17 views
21

Aktualnie czytam książkę Petera Hiltona (wydawca: Manning) Play for Scala: Covers Play 2 i staram się trzymać wersji opisanych w książce (Play version 2.1.1) .Sbt 0.12.4+ wymagane w przypadku importu projektu

Pobrałem nową aplikację IntelliJ IDEA 14 CE i zainstalowałem ją. Obecnie importuję projekt, a to się nie udaje, ponieważ chce wersji sbt o wartości 0.12.4 lub wyższej.

Build failing

Ten problem wystąpił u 13 na drugi dzień, ale nie miałem czasu, aby go rozwiązać, więc proszę, nie ma zalecenia, aby wrócić do 13 :)

Oto mięso problem: Po wpisaniu sbt --version na CLI, drukuje sbt launcher version 0.13.6. Mam "większą" wersję, ale wydaje się, że IDEA nie rozpoznaje tego.

W celu określenia własnego JAR launrującego SBT wskazałem swój niestandardowy launcher (w globalnych ustawieniach IDEA) na ten w /usr/local/Cellar/sbt/0.13.6/libexec/sbt-launch.jar, ale kompilacja również nie powiodła się z tym samym błędem.

Jak można się domyślić w tym miejscu, użyłem Homebrew do instalacji i zarządzania Scala i sbt. Kiedy po raz pierwszy zacząłem pracować ze Scalą w lutym, pamiętam, że musiałem wprowadzić kilka drobnych zmian w ustawieniach, aby znaleźć IDEA, aby znaleźć Scalę, ale moja wersja IDEA 14 jest całkowicie świeża - nie importowałem żadnych poprzednich ustawień. Pobrałem wtyczki Scala i sbt i wyglądają na poprawnie skonfigurowane po pobieżnym wyglądzie i utworzeniu nowego projektu testowego.

Oto, czego nie rozumiem: Po pierwsze i najbardziej oczywiste, dlaczego wersja sbt, która spełnia rzekome wymaganie (0.12.4+) nie powiedzie się z wersją 0.13. *?

Po drugie, czy dołączony sbt z IDEA jest również większy niż ta wersja? Czy gdzieś w moim systemie jest flaga sbt, która wskazuje ją na wcześniejszą wersję? Nota boczna, mam kilka wersji sbt w mojej "Piwnicy", ale wszystkie są większe niż 0.13.

Dziękujemy za pomoc!

Odpowiedz

36

Zerknąłem na próbki kodu z witryny Manninga, a pliki project/build.properties dla każdego projektu podają sbt.version=0.12.2. Domyślam się, że wtyczka Intellij Scala obsługuje tylko SBT 0.12.4 i nie może importować projektu, który jest skonfigurowany do używania starszej wersji (stąd dlaczego zaleca "zaktualizować definicję projektu").

Powinieneś spróbować użyć sbt.version=0.12.4 w pliku project/build.properties.

Ogólnie rzecz biorąc, należy pamiętać, że gdy wersja SBT jest określona w project/build.properties, program uruchamiający SBT pobiera określoną wersję i wykorzystuje ją do zbudowania projektu. W twoim przypadku oznacza to, że program uruchamiający SBT 0.13.6 pobierze SBT 0.12.2 i użyje tej wersji do zbudowania projektu.

+1

Dziękuję. Rozwiązało to dla mnie problem i wiele wyjaśniłem. Chciałbym móc to zrobić więcej niż raz. –

+1

Nie ma za co! Przy okazji, jeśli jesteś zainteresowany lepszym zrozumieniem SBT, mogę polecić książkę "SBT w akcji" (obecnie dostępną jako wczesny dostęp do podglądu z Manning Publishing, jeszcze nie zakończono) - ale dokumentacja na [ Witryna SBT] (http://www.scala-sbt.org/documentation.html) jest dobrym miejscem do rozpoczęcia. –

+0

Dziękuję, myślę, że większość mojej frustracji ze Scala pochodzi z braku zrozumienia sbt, więc to prawdopodobnie ułatwiłoby mi życie.Pozdrawiamy i dziękujemy za pomoc i rekomendacje! –

Powiązane problemy