sobre siembra quitar poda plaga mexico los guayabos guayaba guanabana cultivo cuidar como arbol apical scala guava

scala - siembra - poda de guayaba



¿Por qué necesito jsr305 para usar guayaba en Scala? (3)

Tengo el siguiente archivo de Scala:

object SGuavaTryout { com.google.common.cache.CacheBuilder.newBuilder() }

Compilo con guava-11.0.2.jar en el classpath. Mi compilador scala 2.9.1 (tanto el plugin eclipse como el scalac simple) se queja:

error while loading CacheBuilder, Missing dependency ''class javax.annotation.CheckReturnValue'', required by D:/devel/eclipse-workspace/Scala Spielwiese/guava-11.0.2.jar (com/google/common/cache/CacheBuilder.class)

Para compilar, necesito agregar jsr305 (jsr305-1.3.9.jar) a la ruta de compilación. El equivalente de Java compila bien sin jsr305:

public class JGuavaTryout { public void tryout() { com.google.common.cache.CacheBuilder.newBuilder(); } }

¿Alguna idea de por qué scala requiere jsr305? ¿Hay una implementación oficial de jsr305 para usar con guava?

¡Gracias! - Georg


Esto se debe a la forma en que está diseñado el compilador de Scala, requiere que todos los tipos expuestos por una clase estén disponibles en tiempo de compilación, mientras que al compilador de Java efectivamente no le importa.


Puedes añadir esta dependencia:

<dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>2.0.3</version> <scope>provided</scope> </dependency>

así la compilación funcionará y esto no llegará a la versión final.


Sean Parsons respondió a su primera pregunta, explicando por qué Scala requiere la dependencia JSR 305.

En cuanto a la implementación "oficial" de JSR 305 para usar con Guava, usaría la que declaran en su pom.xml :

<dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>1.3.9</version> </dependency>

Si estuvieras usando Maven, creo que agregaría la dependencia a la ruta de clase automáticamente.

Nota: puede descargar el jar directamente desde el repositorio de Maven Central .