tl; dr To nie jest możliwe ze względu na opis problemu.
Istnieje co najmniej dwóch konfiguracji kompilacji zaangażowanych w projekt sbt - prawdziwy projekt (na którym chcesz postawić swoje pieniądze) i kompilację meta do budowy twojego projektu. Tak, wiem, że to brzmi trochę dziwnie, ale to bardzo potężna koncepcja IMHO.
Zobacz sbt is recursive:
katalogu projektu to kolejny build wewnątrz konstrukcji, który wie, jak budować swój build. Aby odróżnić kompilacje, czasami używamy terminu poprawna kompilacja, aby odnieść się do twojej kompilacji, i meta-kompilacji, aby odnieść się do projektu wbudowanego. Projekty wewnątrz metabuild mogą robić wszystko, co każdy inny projekt może zrobić. Twoja definicja kompilacji to projekt sbt.
sbt działa na Scali i wymaga ścisłej wersji. Nie można tego zmienić, chyba że masz ochotę spędzić czas na rzeczy, których naprawdę nie powinno się dotykać :)
Co można zrobić, to zastosować wtyczkę w project/plugins.sbt
, a następnie, w projekcie, zastosować ustawienia z wtyczki selektywnie, za scalaVersion
z projektu budowy nie samej meta-kompilacji.
Nie jest to tak skomplikowane, jak brzmi odpowiedź, ale wyjaśnianie prostych pojęć zwykle nie jest dla mnie łatwe. Baw się z sbt! Zarobisz szybko, gdy użyjesz go prawidłowo.
Czy możesz opisać, o co chodzi w Twoim przypadku użycia? W szczególności jest to wielomodułowa kompilacja? Cross-built? Jakie wersje Scala? Pytam tylko dlatego, że odpowiedź jest trudna, ponieważ najlepsza odpowiedź zależy od twojej sytuacji. –
Hi Dale, to kompilacja jednomodułowa. Nie używam funkcji wzajemnej kompilacji. Wersja Scala to 2.11.6 lub 2.10.5 – huangjs
Jak to jest Scala w wersji 2.11.6 lub wersji 2.10.5? Nie wiesz co masz na myśli –