sbt - IllegalStateException: ¿es imposible obtener artefactos cuando no se han cargado datos para Guava 12.0?
ivy playframework-2.1 (3)
En una aplicación Java Play 2.1.1 obtengo el siguiente error:
[myproject] $ update
[info] Updating {file:/C:/path/myproject/}myproject...
[info] Resolving ...
[error] impossible to get artifacts when data has not been loaded. IvyNode = com.google.guava#guava;12.0
[error] (*:update) java.lang.IllegalStateException: impossible to get artifacts when data has not been loaded. IvyNode = com.google.guava#guava;12.0
[error] Total time: 230 s, completed 17.05.2013 19:16:41
Build.scala
"com.google.guava" % "guava" % "14.0.1",
"org.mydependency" % "mydependency" % "1.0-SNAPSHOT" changing() exclude("org.jboss.netty","netty") exclude("com.google.guava", "guava") exclude("log4j", "log4j"),
Lo que causa este error (todo funcionó bien antes) es un cambio de dependencia dentro de mydependency:
antiguo:
<dependency>
<groupId>com.thinkaurelius.titan</groupId>
<artifactId>titan-berkeleyje</artifactId>
<version>0.3.1</version>
</dependency>
nuevo:
<dependency>
<groupId>com.thinkaurelius.titan</groupId>
<artifactId>titan-cassandra</artifactId>
<version>0.3.1</version>
</dependency>
No quiero la guayaba 12.0 de todos modos y es y fue excluido.
¿Puedo decirle a Play 2.1.1 que use una Ivy más nueva?
En plugins.sbt tengo:
addSbtPlugin("play" % "sbt-plugin" % "2.1.1")
Arreglo temporal Como alguien mencionado aquí ¿Mensaje de error de Apache IVY? : artefactos imposibles de conseguir cuando los datos no se han cargado manualmente y la dependencia lo resuelve: he añadido
"com.google.guava" % "guava" % "12.0"
y el problema se ha ido.
Aparentemente, más personas tuvieron y tienen este problema, así que estoy poniendo mi solución como respuesta:
Arreglo temporal Como alguien mencionado aquí ¿Mensaje de error de Apache IVY? : artefactos imposibles de conseguir cuando los datos no se han cargado manualmente y la dependencia lo resuelve: he añadido
"com.google.guava" % "guava" % "12.0"
y el problema se ha ido.
En lugar de usar una versión inferior, puede intentar agregar esta línea al archivo .sbt:
dependencyOverrides += "com.google.guava" % "guava" % "14.0.1"
Play 2.1.x usa sbt 0.12, que usa Ivy 2.3.0-rc1, pero parece que esto todavía es un problema. Si puede obtener pasos de reproducción utilizando bibliotecas disponibles públicamente, abra un problema de Github con un enlace a este comentario.