Ich richte meine erste Play-App in einer gemischten Build-Umgebung ein. Meine Firma benutzt Maven für alles (bis jetzt) und ich versuche, meine Play App gut mit den anderen Artefakten zu interagieren.2.0 und SNAPSHOT-Abhängigkeiten spielen
Gibt es eine Möglichkeit, efeu/sbt/play mit SNAPSHOTs in ähnlicher Weise wie Maven zu behandeln - entweder aktualisieren sie sie immer aus dem Remote-Repository (zum Beispiel auf einem Build-Worker) oder verwenden Sie die lokale. m2-Repository, bis die Abhängigkeit abläuft, und aktualisiert sie dann vom Server.
Ich habe eine SNAPSHOT-Abhängigkeit in meinem Build.scala für ein Artefakt deklariert, und ich möchte, dass lokale Updates für diese Abhängigkeit in meinem Spielprojekt sichtbar sind. Auf der Maven-Seite, kann ich die folgenden
mvn clean install
, die (natürlich) baut und installiert meinen externen Artefakt zu meinem lokalen Maven-Repository (bei ~/.m2/Repository). Ich möchte, dass diese Änderungen für mein Spielprojekt sofort sichtbar sind, aber ich kann nicht herausfinden, wie ich sbt/play sagen kann, dass SNAPSHOTs nicht zwischengespeichert werden. Egal, was ich mache, diese Abhängigkeit wird nie im Spiel aufgefrischt - ich muss in den eigentlichen Play-Efeu-Cache gehen und die Abhängigkeit per Hand löschen, um alle Änderungen abzuholen. Idealerweise möchte ich, dass sbt/ivy den Pfad zu meinem lokalen maven-Repo auflöst und ihn nicht intern zwischenspeichert. Ich habe folgendes in meinem Build.scala bekam
val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
resolvers += "Local Maven Repository" at "file://" + Path.userHome.absolutePath + "/.m2/repository",
testOptions in Test := Nil
)
Wenn ich einen Build im Spiel laufen, verwendet es richtig dieses Repo, aber dann speichert die Ergebnisse in der Efeu-Cache. Gibt es eine Beschwörung, kann ich Ivy/sbt sagen, dies nicht zu tun? Vielleicht etwas in ivysettings.xml?
Haben Sie versucht, sauber zu spielen? –
Unterstützt http://stackoverflow.com/questions/8224907/re-download-a-snapshot-version-of-a-dependency-using-sbt? –
Ja - ich habe jede denkbare Kombination ausprobiert. Eine Vanilla Play 2.0-Installation speichert SNAPSHOTS und Sie müssen sie manuell löschen. Die Verwendung von sbt 0.11 (ohne installierte Wiedergabe) macht dasselbe. Die Verwendung von sbt 0.12 mit dem neuesten Play 2.1 SNAPSHOT zeigt dies ebenfalls. Egal was ich mache, der SNAPSHOT wird in ~/.ivy2/cache gepuffert und keine Art von sbt/play Beschwörung kann sbt/play veranlassen diesen SNAPSHOT im Efeu Cache zu aktualisieren. – dpratt