2017-02-12 5 views
1

Ich mag diesen erfolgreichScala Spiele und Multi-Projekt SBT Baut

activator new foo play-event-sourcing-starter 

das Projekt generiert wurde ein scala Play-Projekt erstellt, und ich kann innen und einfach erstellen und ausführen, um die App gehen.

Aber was ich will ist, dass ich ein Multiprojekt sbt bauen sollte. Ich googelte und fand diese https://www.playframework.com/documentation/2.5.x/SBTSubProjects

Aber das ist nicht das Gleiche wie das, was ich will, denn hier haben sie als das Root-Projekt spielen. Was ich will, ist, dass ich ein leeres Root-Projekt mit einer build.sbt-Datei und dann mehrere "Peer" -Projekte habe. Einer von ihnen ist spielen.

Also änderte ich die Schritte zu

mkdir -p LearnPlay/project 
cd LearnPlay 
activator new foo play-event-sourcing-starter 

nun die build.sbt zum LearnPlay Verzeichnis innerhalb foo und zog ich ging. Ich habe auch die build.properties und plugins.sbt Dateien in LearnPlay/Projektordner verschoben.

ich die build.sbt Datei bearbeitet, so dass das Stammprojekt

jedoch sbt das Projekt nicht mehr kompilieren kann nun
lazy val root = (project in file("foo")).enablePlugins(PlayScala) 

wird und es kann jedes der Spiel Rahmen Abhängigkeiten nicht gefunden.

sbt.ResolveException: unresolved dependency: com.typesafe.play#play-server_2.10;2.5.9: not found 
unresolved dependency: com.typesafe.play#play-netty-server_2.10;2.5.9: not found 
unresolved dependency: com.typesafe.play#play-logback_2.10;2.5.9: not found 
unresolved dependency: com.typesafe.play#play-test_2.10;2.5.9: not found 
unresolved dependency: com.typesafe.play#play-omnidoc_2.10;2.5.9: not found 
    at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:313) 

Dies sind die Inhalte meiner plugins.sbt-Datei. Der Resolver ist korrekt definiert, weshalb ich nicht sicher bin, warum sbt die Abhängigkeiten nicht finden kann, nachdem die Datei vom Unterprojekt zum Stammprojekt verschoben wurde. Es war in der Lage, alles zu lösen, wenn sich die Datei im Projektverzeichnis des foo-Projekts befand.

resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/" 

// The Play plugin 
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.9") 

// web plugins 
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0") 

Antwort

1

Die Sache, die einige Ideen gab mir, was das Problem ist es:

unresolved dependency: com.typesafe.play#play-server_2.10;2.5.9: not found 

Sie nicht überrascht, dass sbt versucht 2.10 die Version von Spiel-Server für die Scala zum Download , die nicht für Play 2.5.x existiert, da es bereits aus dem Lebenszyklus ist.

In meinen Projekten geschieht dies, wenn ich keine Scala-Version in build.sbt angeben oder auf die 2.10, z.

lazy val root = (project in file("foo")).settings(
    scalaVersion := "2.10.6", 

so, ich glaube, Sie müssen nur scalaVersion Parameter hinzu und setzen Sie ihn auf etwas von 2.11.x oder 2.12.x

+0

Sie haben Recht, aber es ist ein wenig überraschend, weil die scalaVersion war im sbt-Projekt angegeben, obwohl nicht direkt im Root-Projekt selbst. Es war in der Lage, die richtige Scala-Version auszuwählen, wenn es im Root-Projekt war ... aber nicht, wenn es das Verzeichnis verwendete. –

+0

könnten Sie Ihre build.sbt vollständig anzeigen? – Mysterion

Verwandte Themen