Estoy configurando mi primera aplicación de reproducción en un entorno de compilación mixta. Mi compañía usa maven para todo (hasta ahora) y estoy tratando de hacer que mi aplicación de juegos interactúe muy bien con el resto de mis artefactos.Dependencias de Play 2.0 y SNAPSHOT
¿Hay alguna manera de obtener hiedra/sbt/play para tratar SNAPSHOTs de manera similar a maven, es decir, actualizarlos siempre desde el repositorio remoto (por ejemplo, en un trabajador de construcción) o usar el local. m2 repository hasta que la dependencia 'expire' y luego actualizarlo desde el servidor.
He declarado una dependencia SNAPSHOT en mi Build.scala para un artefacto, y me gustaría que las actualizaciones locales a esta dependencia sean visibles para mi proyecto de juego. En el lado experto, hago lo siguiente
mvn clean install
la que (por supuesto) construye e instala mi artefacto externo a mi repositorio Maven local (en ~/.m2/repositorio). Me gustaría que estos cambios sean inmediatamente visibles para mi proyecto de juego, pero no puedo encontrar la manera de decirle a sbt/play que no guarde en la memoria caché SNAPSHOT. No importa lo que haga, esta dependencia nunca se actualiza en el juego: tengo que ir al caché de ivy play real y eliminar la dependencia a mano para que se recojan los cambios. Idealmente, me gustaría que sbt/ivy simplemente resolviera el camino a mi repositorio maven local y no lo almacenara en caché internamente. Tengo el siguiente en mi Build.scala
val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
resolvers += "Local Maven Repository" at "file://" + Path.userHome.absolutePath + "/.m2/repository",
testOptions in Test := Nil
)
Cuando ejecuto una acumulación en el juego, correctamente utiliza esta cesión temporal, pero luego almacena los resultados en la memoria caché de hiedra. ¿Hay algún conjuro que le indique a Ivy/sbt que no haga esto? Tal vez algo en ivysettings.xml?
¿Has intentado jugar limpio? –
¿Ayuda http://stackoverflow.com/questions/8224907/re-download-a-snapshot-version-of-a-dependency-using-sbt? –
Sí, he probado todas las combinaciones que se me ocurren. Una instalación de vanilla 2.0 instala en la caché SNAPSHOTS y debe eliminarla manualmente. El uso de sbt 0.11 (sin play instalado) hace lo mismo. Además, el uso de sbt 0.12 con la última versión de Play 2.1 SNAPSHOT también lo muestra. No importa lo que haga, SNAPSHOT se almacena en caché en ~/.ivy2/cache y ninguna forma de encantamiento sbt/play puede hacer que sbt/play actualice esta INSTANTÁNEO en el caché de hiedra. – dpratt