/ / Skąd biorą się zależności javaWs, javaJpa itp. W aplikacji Play / Java? - playframework, sbt

Skąd pochodzą zależności javaWs, javaJpa itp. W aplikacji Play / Java? - playframework, sbt

Zaczynam nowy projekt w Play Framework z Javą. Sprawdziłem build.sbt plik i nie możesz zrozumieć, skąd pochodzą nazwy zależności?

libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
javaJpa
}

Skąd takie nazwy? javaWs, javaJpa, itp. com z? Jak sprawdzić wersję tych bibliotek?

Odpowiedzi:

2 dla odpowiedzi № 1

Zależności wymienione w tym przykładzie to te, które są dostarczane wraz z instalacją gry. Wersje odpowiadają używanej wersji środowiska Play.

Play framework jest modułowy, więc nie musisz używać wszystkich jego modułów w swojej aplikacji. Dlatego musisz określić, które moduły chcesz.


8 dla odpowiedzi № 2

tl; dr Są zdefiniowane przez sbt-plugin (widzieć javaWs i javaJpa lub inni w PlayImport.scala) jest to zazwyczaj dodano do kompilacji project/plugins.sbt.

Posługiwać się sbt lub activator narzędzia do nauki, skąd pochodzą części kompilacji. Zakładam, że używasz sbt (ale dotyczy to: activator lub play także narzędzia wiersza poleceń).

Pamiętaj, że kompilacja sbt jest opisywana przy użyciu języka Scala, a wszystkie kompilacje sbt są bezpieczne pod względem typu i kompilowane przy użyciu kompilatora Scala.

Wtyczka SBT to tylko kilka ustawień, które można zastosować do projektu, które mogą również definiować Scalę valktóre odpowiadają różnym zależnościom, których możesz użyć w projekcie Play, np. javaJdbc. Możesz zapytać o vals za pomocą consoleProject (który opisałem poniżej jako drugą opcję).

sbt shell

Wewnątrz projektu wykonaj sbt. Podczas pracy w powłoce sbt wykonaj polecenie show libraryDependencies aby dowiedzieć się o zależnościach:

> show libraryDependencies
[info] List(org.scala-lang:scala-library:2.11.1, com.typesafe.play:twirl-api:1.0.2, com.typesafe.play:play:2.3.2, com.typesafe.play:play-test:2.3.2:test, com.typesafe.play:play-docs:2.3.2:docs, com.typesafe.play:play-jdbc:2.3.2, com.typesafe.play:anorm:2.3.2, com.typesafe.play:play-cache:2.3.2, com.typesafe.play:play-ws:2.3.2)

consoleProject

Wewnątrz projektu wykonaj sbt consoleProject aby dowiedzieć się o kompilacji. Używam wersji Play projektu Scala.

Z consoleProject wprowadzasz Scala REPL z załadowaną wersją. Jesteś w Scala REPL i możesz sprawdzać różne części kompilacji za pomocą Scali.

Posługiwać się eval makro do oceny ustawień kompilacji w środku consoleProject:

scala> libraryDependencies.eval
res0: Seq[sbt.ModuleID] = List(org.scala-lang:scala-library:2.11.1, com.typesafe.play:twirl-api:1.0.2, com.typesafe.play:play:2.3.2, com.typesafe.play:play-test:2.3.2:test, com.typesafe.play:play-docs:2.3.2:docs, com.typesafe.play:play-jdbc:2.3.2, com.typesafe.play:anorm:2.3.2, com.typesafe.play:play-cache:2.3.2, com.typesafe.play:play-ws:2.3.2)

Dostajesz Seq[sbt.ModuleID] i możesz zrobić co chcesz z wartością za pomocą Scali.

Od build.sbt ponieważ projekt wygląda następująco (pokazałem tylko część z libraryDependencies):

libraryDependencies ++= Seq(
jdbc,
anorm,
cache,
ws
)

kiedy w consoleProject Mogę zapytać, co oznaczają nazwy w następujący sposób:

scala> jdbc
res0: sbt.ModuleID = com.typesafe.play:play-jdbc:2.3.2

Pamiętajcie, oni są Scala vals z sbt.ModuleID typ i ... nic więcej.