/ / Jak zaimportować projekt wielomodułowy do IntelliJ IDEA? - intellij-idea, playframework-2.0, sbt

Jak importować projekt wielomodułowy w IntelliJ IDEA? - intellij-idea, playframework-2.0, sbt

Jestem przyzwyczajony do projektów Spring i Maven, w których konfiguruję projekt wielomodułowy w Maven z takimi projektami jak:

app-web
app-models
app-services
app-common

Teraz zaczynam używać Zagraj w Framework 2 (Scala) i sbt.

Czy istnieje podobna koncepcja z Play i SBT, że mogę zgrupować wszystkie te projekty w jednym rozwiązaniu IntelliJ IDEA i SBT?

Odpowiedzi:

8 dla odpowiedzi № 1

IntelliJ IDEA 13 (najnowsza wersja to 13.1.3) przychodzi z wbudowana obsługa SBT, i edycja Ultimate dodaje obsługę Play.

Wielomodułowy projekt SBT może zostać zaimportowany do IDEA i jest w pełni obsługiwany po wyjęciu z pudełka, jednak jest oparty na Play czy nie (w końcu są to projekty SBT).

Powinieneś wypróbować to sam z poniższym bardzo uproszczonym plikiem kompilacji build.sbt (lub po prostu wygeneruj projekt Play za pomocą play new lub lepiej teraz activator new [your-project-name] play-scala):

lazy val a, b, c = project

i następujące project/build.properties:

sbt.version=0.13.5

Te dwa powyższe pliki nie są potrzebne, aby rozpocząć pracę z programem sbt / activator.

W IDEA otwórz projekt za pomocą File > Open... i wybierz build.sbt.

wprowadź opis obrazu tutaj

Kliknij OK aby zobaczyć inne okno, w którym określisz dodatkowe opcje konfiguracji dla projektu. Następnie pojawią się moduły.

wprowadź opis obrazu tutaj


1 dla odpowiedzi nr 2

Prawdopodobnie nie byłbyś w stanie zgrupować ich w jednym projekcie, ale na pewno możesz mieć wiele projektów:

w twoim projekcie / Build.scala:

{

val baseDependencies = Seq(
"org1" % "dep" % "latest.integration",
"org2" % "dep2" % "version"
)

val modelDependencies = baseDependencies ++ Seq("org3" % "dep3" % "version")

val appWeb = play.Project("app-web", "1.0", baseDependencies)

val appModels = play.Project("app-models", "1.0", modelDependencies, path = file("modules/models"))

val app = play.Project("app", "1.0", Nil).aggregate(appWeb, appModels)
}

W takim przypadku będziesz mieć zwykłą aplikację o nazwie„app-web”, moduł appModels w modułach / modelach bez katalogu projektu i regularne confs, takie jak application.conf, oraz zagregowana aplikacja o nazwie „app”.

Po uruchomieniu konsoli do gier możesz się przełączyćdo niektórych projektów, wpisując „projekt (nazwa)”. Na przykład możesz wpisać „projekt aplikacji internetowej”, a następnie „pomysł”, aby wygenerować rozwiązanie projektu aplikacji internetowej. Możesz także przejść do „aplikacji” projektu, w której wszystkie wprowadzone w nim polecenia zostaną zastosowane do wszystkich podprojektów.

Aby uzyskać więcej, sprawdź dokumentację tutaj: http://www.playframework.com/documentation/2.2.x/SBTSubProjects