Sobre o projeto

Guava é um conjunto de bibliotecas core Java do Google. Fornece novos tipos de coleções como multimap e multiset, coleções imutáveis, uma biblioteca de grafos e utilitários para concorrência, E/S, hashing, primitivos, strings e muito mais. De acordo com o README, é amplamente utilizado na maioria dos projetos Java dentro do Google e por muitas outras empresas também. Guava vem em dois sabores. O sabor JRE requer JDK 1.8 ou superior. Para suporte Android, há um sabor Android disponível, com código-fonte no diretório android do repositório. Adicionar Guava a uma build: o grupo Maven é com.google.guava e o artifact ID é guava. Os dois sabores são especificados no campo de versão Maven como 33.7.1-jre or 33.7.1-android. Snippets de dependência Maven e Gradle estão disponíveis no README, incluindo orientações sobre quando usar api versus implementation no Gradle. Snapshots construídos a partir do branch master estão disponíveis via Maven usando a versão 999.0.0-HEAD-jre-SNAPSHOT, ou 999.0.0-HEAD-android-SNAPSHOT para o sabor Android. Javadoc e diffs de API dos snapshots também estão disponíveis. O Javadoc pode ser acessado em guava.dev/api, e uma classe específica pode ser aberta appending seu nome a guava.dev. Recursos de aprendizado incluem o users' guide, Guava Explained, e uma coleção de outros links úteis. O projeto faz link para seu GitHub, issue tracker, tag no StackOverflow, e os grupos Google guava-announce e guava-discuss. O README lista avisos importantes. APIs marcadas com a anotação @Beta em nível de classe ou método estão sujeitas a mudanças e podem ser modificadas ou removidas a qualquer momento; autores de bibliotecas são aconselhados a não usar APIs beta a menos que as reembalagem, e um Guava Beta Checker é recomendado. APIs sem @Beta permanecem binariamente compatíveis por tempo indeterminado, e até APIs @Deprecated permanecerão a menos que sejam @Beta. Guava tem uma dependência necessária para linkage em runtime, com.google.guava:failureaccess:1.0.3, além de algumas dependências apenas de anotações. Formas serializadas de todos os objetos estão sujeitas a mudanças, a menos que indicado o contrário, portanto não devem ser persistidas assumindo que uma versão futura possa lê-las. As classes não são projetadas para proteger contra um chamador malicioso e não devem ser usadas para comunicação entre código confiável e não confiável. Para o sabor mainline, as bibliotecas são testadas usando uma variedade de versões OpenJDK no Linux e Windows, e alguns recursos, especialmente em com.google.common.io, podem não funcionar corretamente em ambientes não Linux. Para o sabor Android, os testes unitários também rodam no API level 24 (Nougat).