Tutoriel d'introduction et d'installation de Guava

Thierry Leriche-Dessirier

Guava est une bibliothèque, de chez Google, proposant de nombreux outils pour améliorer les codes des programmes Java. Elle permet, entre autres, de manipuler les collections, de jouer efficacement avec les immutables, d'éviter la gestion des beans nuls, de s'essayer à la programmation fonctionnelle, de cacher les objets, de les simplifier, et bien d'autres choses…

Dans ce premier article sur Guava, nous allons découvrir la bibliothèque, poser quelques bases et voir comment l'installer. Commentez

- Titre : Tutoriel d'introduction et d'installation de Guava

- Auteur : Thierry Leriche-Dessirier

- Parution : 19 juillet 2013

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Thierry Leriche-Dessirier. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- I-A. Versions des logiciels et bibliothèques utilisés

- I-B. Mises à jour

- II. Guava en quelques mots

- III. Milou le chien

- IV. Installation

- IV-A. Maven

- IV-B. Gradle

- IV-C. Ivy

- IV-D. Buildr

- V. Conclusion

- VI. Remerciements

- VII. Annexes

- VII-A. Liens

- VII-B. Liens personnels

- VII-C. À propos

I - Introduction

Cet article est le premier d'une série consacrée à la bibliothèque Guava :

- introduction et installation ;

- collections ;

- programmation fonctionnelle ;

- utilitaires ;

- cache et concurrence ;

- tout pour vos Strings et primitifs ;

- un peu de math ;

- hash et I/O.

I-A - Versions des logiciels et bibliothèques utilisés

Pour écrire ce document, j'ai utilisé les versions suivantes :

- Java JDK 1.6.0_24-b07 ;

- Eclipse Indigo 3.7 JEE 64b ;

- Maven 3.0.3 ;

- JUnit 4.10 ;

- Guava 14.0.

J'utilise Java 6, car Java 7 n'est pas encore très répandu en entreprise. C'est ce que je vérifie durant mes conférences lorsque je demande qui utilise Java 7 sur ses serveurs de production, mais que très peu de mains se lèvent…

I-B - Mises à jour

15 juillet : création du document.

II - Guava en quelques mots

La bibliothèque Guava a été créée chez Google pour répondre aux besoins fréquemment rencontrés par les équipes Java du géant, et ainsi avoir des réponses standardisées et performantes sur l'ensemble des projets.

Guava est issue d'un autre projet de Google, à savoir « Google-Collection », pour lequel j'avais déjà écrit un article nommé« Àla découverte du framework Google Collections » il y a quelque temps. Quand je remonte l'historique des versions, je retrouve des traces de la bibliothèque jusqu'à l'été 2007. Quant à Guava, qui en est à la version « 14.0 » au moment où j'écris ces lignes, sa version « 1.0 Final » date de la fin 2009, soit un an et demi plus tard.

Pour faire simple, le projet « Google-Collection » a été abandonné au profit de Guava et ses fonctionnalités ont été intégrées dans Guava.

III - Milou le chien

Pour que l'ensemble de cet article soit cohérent et pour ne pas avoir à décrire des cas d'usage complexes à chaque exemple, j'ai utilisé des objets simples pour illustrer les fonctionnalités.

Milou

C'est là qu'intervient Milou le chien, un bean très simple qui ressemble au code Java suivant :

Chien.java

public class Chien {

private Integer id;

private String name;
private String fullName;

private SexeEnum sex;
private Date birthday;

private String race;
private Boolean lof;

private Double weight;
private Double size;
private List<String> colors;

...

IV - Installation

Il y a plusieurs manières d'ajouter Guava à un projet, la plus simple étant de prendre directement le fichier JAR sur le site de la bibliothèque chez Google. Pour ma part, je préfère utiliser un outil comme Maven ou Gradle. Voici comment cela doit être fait.

Dans tous les cas, je vous invite à lire la documentation spécifique avec les conseils destinés à chaque solution sur le Wiki de Guava.

IV-A - Maven

pom.xml

...

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>14.0</version>
</dependency>

...

IV-B - Gradle

Gradle

...

repositories {
mavenCentral()
}

dependencies {
compile group: 'com.google.guava', name: 'guava', version: '14.0'
}

...

IV-C - Ivy

Ivy

...

<dependency org="com.google.guava" name="guava" rev="14.0" />

...

IV-D - Buildr

Buildr

compile.with 'com.google.guava:guava:jar:14.0'

V - Conclusion

Pour le moment, nous n'avons vu que comment ajouter Guava à vos projets. N'hésitez pas à consulter les autres épisodes de cette série pour découvrir les fonctionnalités fantastiques de la bibliothèque.

Vos retours nous aident à améliorer nos publications. N'hésitez donc pas à commenter cet article sur le forum : Commentez

VI - Remerciements

D'abord j'adresse mes remerciements à l'équipe Guava, chez Google, pour avoir développé une bibliothèque aussi utile et pour la maintenir. Je n'oublie pas tous les contributeurs qui participent notamment sur le forum Guava.

Plus spécifiquement en ce qui concerne cet article, je tiens à remercier l'équipe de Developpez.com et plus particulièrement Bernard Le Roux, Ricky81, Mickael Baron, Yann Caron, Logan, et Claude Leloup.

VII - Annexes

VII-A - Liens

Guava : https://code.google.com/p/guava-libraries/

Article « Simplifier le code de vos beans Java à l'aide de Commons Lang, Guava et Lombok » :
https://thierry-leriche-dessirier.developpez.com/tutoriels/java/simplifier-code-guava-lombok/

Blog sur Guava : https://blog.developpez.com/guava/

VII-B - Liens personnels

Retrouvez ma page et mes autres articles sur Developpez.com à l'adresse
https://thierry-leriche-dessirier.developpez.com/#page_articles

Suivez-moi sur Twitter : @thierryleriche(https://twitter.com/thierryleriche)

VII-C - À propos

Dans cet article, j'ai essayé d'illustrer les éléments abordés avec des tests unitaires et/ou des exemples concrets, souvent associés à des chiens. On pourrait en imaginer bien d'autres, qui seraient peut-être plus pertinents. Si vous souhaitez m'en proposer, je me ferai un plaisir de les intégrer. Mon objectif, dans le choix des exemples, est principalement d'avoir des cas faciles à expliquer et/ou à comprendre, en quelques secondes. Je ne souhaite pas m'embarquer dans une longue explication (physique quantique, comptabilité, etc.), quitte à ne pas avoir les meilleures illustrations.

Il y aurait mille et une façons de présenter la bibliothèque Guava. Les fonctionnalités auxquelles pensent en premier les développeurs sont généralement liées aux collections, aux immutables, à la programmation fonctionnelle et aux utilitaires simples. J'ai commencé par ces éléments. Pour le reste, je me suis inspiré du Wiki officiel.

J'ai déjà fait tourner des présentations de Guava dans différents JUG (Java User Group) français. Vous en retrouverez les enregistrements (audio et/ou vidéo) ainsi que les slides PowerPoint sur mon site ici. Cela ne se substitue pas à cet article, qui est bien plus complet.

Pour préparer cet article, j'ai d'abord écrit un blog disponible sur Developpez.com ici. Je vous invite à le consulter en complément de ce document, car il propose d'autres exemples.