vendredi 26 septembre 2014

Managez proprement vos ressources JS et CSS avec Maven, Gradle, Play! grâce à WebJars ! (bye Bower ?)


Toutes vos ressources JS et CSS, paquagées, versionnées, embarquées dans des Jars et disponibles via le repository Maven. Je suis conquis.

Je peux enfin me passer de Bower ... En tant que Javaïste, la mise en oeuvre de toute l'usine logicielle JS (node, yo, grunt, bower voire ruby ...) ne m’enchante pas vraiment et me donne l'impression de complexifier mon environnement plus qu'autre chose.

Bien qu'existant depuis quelques temps, je viens de découvrir Webjars, par hasard, en parcourant un bout de code.
Le fonctionnement est simple : Les librairies JS ou ressources CSS sont packagées dans des jar de telle manière qu'elles sont automatiquement exposées comme des ressources statiques.

Prenons un exemple simple : Un projet Java, avec en front AngularJS et Bootstrap


1) Creation d'un projet web maven

Vous savez faire ... :-)

2) Ajoutez les dépendances WebJars pour AngularJS et Bootstrap

Ajoutez dans le POM :
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>angularjs</artifactId>
    <version>1.2.25</version>
</dependency>

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>bootstrap</artifactId>
    <version>3.2.0</version>
</dependency>

3) Codez votre front

Les fichiers js et css propres à mon projet, je les place sous resources/public :


Pour importer vos ressources, rien de plus simple. Votre IDE trouvent les librairies présentes dans les jar :




4) Nous sommes en Java donc, partons sur Spring Boot par exemple pour le backend

Pour continuer dans la simplicité de mise en oeuvre, j'utilise Spring Boot pour le serveur.
Une fois les dépendances Spring déclarées, la classe Main créée pour lancer le serveur je suis fin prêt à lancer l'application.

Voici le lien github vers le code où j'ai découvert Webjars (il s'agit ici d'un exemple de mise en oeuvre de Spring Security et d'AngularJS pour sécuriser, via un token, l'accès à des services REST :
https://github.com/joshlong/boot-examples/tree/master/x-auth-security

5) C'est tout !

Avec la facilité d'utilisation de Spring Boot, associée aux fonctionnalités de "live edit" de mon IDE avec mon navigateur, je n'ai plus aucun besoin de grunt non plus...

Quand je regarde l'arborescence de mon projet .... je me sens léger tout d'un coup !

Une librairie n'existe pas ! contribuez !


Webjars contient auourd'hui + de 500 libraires, vous pouvez y contribuer et en packager vous-mêmes, la procédure est expliquée dans la doc.


Aucun commentaire:

Enregistrer un commentaire