Sobre el proyecto

Guava es un conjunto de bibliotecas core de Java de Google. Proporciona nuevos tipos de colecciones como multimap y multiset, colecciones inmutables, una librería de grafos, y utilidades para concurrencia, E/S, hashing, primitivas, strings y más. Según el README, es ampliamente utilizado en la mayoría de los proyectos Java dentro de Google y por muchas otras empresas. Guava se presenta en dos variantes. La variante JRE requiere JDK 1.8 o superior. Para soporte en Android, hay disponible una variante para Android, con el código fuente en el directorio android del repositorio. Añadir Guava a una compilación: el group ID de Maven es com.google.guava y el artifact ID es guava. Las dos variantes se especifican en el campo de versión de Maven como 33.7.1-jre o 33.7.1-android. El README incluye snippets de dependencia para Maven y Gradle, así como orientación sobre cuándo usar api versus implementation en Gradle. Las snapshots compiladas desde la rama master están disponibles a través de Maven usando la versión 999.0.0-HEAD-jre-SNAPSHOT, o 999.0.0-HEAD-android-SNAPSHOT para la variante Android. También están disponibles las API Javadoc de snapshot y las diff de API. La Javadoc se puede consultar en guava.dev/api, y se puede abrir una clase específica añadiendo su nombre a guava.dev. Los recursos de aprendizaje incluyen la guía de usuarios, Guava Explained, y una colección de otros enlaces útiles. El proyecto enlaza a su proyecto en GitHub, el rastreador de issues, la etiqueta de StackOverflow, y los grupos de Google guava-announce y guava-discuss. El README enumera advertencias importantes. Las APIs marcadas con la anotación @Beta a nivel de clase o método están sujetas a cambios y pueden modificarse o eliminarse en cualquier momento; se aconseja a los autores de bibliotecas no usar APIs beta a menos que las repackeen, y se recomienda un Guava Beta Checker. Las APIs sin @Beta se indicarán como compatibles binariamente para el futuro indefinido, e incluso las APIs @Deprecated permanecerán a menos que sean @Beta. Guava tiene una dependencia necesaria para el enlace en tiempo de ejecución, com.google.guava:failureaccess:1.0.3, más algunas dependencias solo de anotaciones. Las formas serializadas de todos los objetos están sujetas a cambio a menos que se indique lo contrario, por lo que no deben persistirse asumiendo que una futura versión podrá leerlas. Las clases no están diseñadas para proteger contra un atacante malintencionado y no deben usarse para comunicación entre código de confianza y no confiable. Para la variante principal, las bibliotecas se prueban utilizando una variedad de versiones de OpenJDK en Linux y Windows, y algunas funciones, especialmente en com.google.common.io, pueden no funcionar correctamente en entornos distintos a Linux. Para la variante Android, las pruebas unitarias también se ejecutan en el nivel de API 24 (Nougat).