Le 16/06/2014 18:05, a.garandel@dralagen.fr a écrit :
Bonjour, Yo, Je me pose la question de comment gérer les dépendances javascript :
- Normalement, avec nuiton-js. Mais j'ai un module angular-translate que n'est pas pris en charge, ni d’éditeur WYSIWYG On peut les packager, c'est libre. On peut aussi utiliser la release de webjars : http://repo1.maven.org/maven2/org/webjars/angular-translate
- Alternatif, Il existe un gestionnaire de dépot 'bower' qui est une sorte de maven pour javascript. Toutes les libs javascripts sont présent avec presque toutes les versions. Le problème c'est que bower est une appli installé avec npm donc les dépendances sont un peu lourde À terme, ca me tente bien cette approche. À vouloir "repousser" dans maven c'est lib javascript qui existe déjà ailleurs, c'est de la pure duplication.
Lié l’écosystème java à écosystème javascript est la meilleure solution à long terme.
- CDN, la version actuel est avec des dépots web, ça a l'avantage de pas créer de charge serveur ni gérer les versions, mais celà implique une forte dépendance a l’hébergeur. On peut faire confiance au dépot google (angular), mais peut être un peu moins a cdnjs que je ne connaissais pas avant le stage.
C'est fiable, mais il nous arrive de faire des applications purement 'intranet' sans accès internet, donc cela ne fonctionne pas.
Voilà. Il faudrait faire un choix sur l'une des solutions.
Mon avis :
laisser pollen les dépots web : - Impossible de customisé les lib (comme j'ai fait avec ckeditor)
Il faut éviter au maximum, car c'est toujours très compliqué à mettre à jour.
- Impossible d'avoir l'application sur un réseau local sans internet + Version Optimisé pour les performances
Pollen avec les dépots nuiton-js : - Faut prendre le temps d'ajouter le lib qui n'y sont pas : angular-translate, ckeditor ou un autre editeur WYSIWIG + Dépendance géré par maven.
Pollen avec les dépôts géré par bower : - Bower dépend de Node (npm) + Plus facile de modifier les versions des dépendances + Une ligne de commande pour installer toutes les dépendances ('bower install', exécutable par maven si on veut) + Outils connu donc qui peut être utilisé par une communauté
Quelle solution on envisage pour pollen ?
La finalité est que : - 'mvn clean install' package totalement l'application - 'mvn jetty:run' fonctionne - dans eclipse cela fonctionne Donc, la seule solution que je vois à l'heure actuelle est d'avoir les resources javascript dans les jars (et seul nuiton-js, webjars propose ca). Le must au final serait truc maven + bower. (attention, la suite est sujette à troll, et aurait plus eu sa place un vendredi) Après, concernant pollen-ui-angular, ce n'est pas un projet Java, qu'apporte vraiment Maven dans ce cas ? Peut-être que la solution peut se trouver dans d'autres ecosystème, comme Gradle. Gradle n'est déjà pas spécifique à Java, et doit avoir moins de contrainte que Maven. À voir son intégration avec Bower, yeoman, et grunt. Mais le problème n'est pas simple. -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28