Skip to content

Latest commit

 

History

History
145 lines (105 loc) · 5.24 KB

20161115_Paris-JUG_quoi-de-neuf-JEE_gradle-fast-builds.adoc

File metadata and controls

145 lines (105 loc) · 5.24 KB

2016/11/15 - Paris JUG - Quoi de neuf JEE et autres & des builds incroyablement rapides avec Gradle

Des builds incroyablement rapides avec Gradle

Présenté par Cédric CHAMPEAU.

20161115 ParisJUG quoi2neuf JEE fast builds gradle 01

Nouveautés :

  • Gradle 3

  • Gradle 4 : début 2017

News Gradle 3 :

  • a build tool

  • des services en ligne (faut bien manger !)

Les forces de Gradle :

  • Gradle Daemon

  • beaucoup plus stable depuis la version 3 (plus de lock sur le rep build ! Enfin on peut le supprimer sans avoir besoin de redémarrer)

  • après quelques run (merci le JIT), on gagne plus de 50% de temps de build.

  • outils de profiling :

  • gradle --profile : l’historique, avec déjà quelques infos, limitées et difficilement partageables

  • service en ligne : build scans
    20161115 ParisJUG quoi2neuf JEE fast builds gradle 02
    Le nouvel outil, cloud, bien plus performant.
    Voir https://scans.gradle.com/s/ly5tnqtuoqlwe pour un exemple de build scan. Pour l’utiliser, un plugin à ajouter, et builder avec -Dscan

    • Data collectées au cours du build PUIS envoyées en 1 shot dans le cloud

    • Possibilité de l’installer en LAN

  • builds incremental

    • Gradle permet de redéfinir les entrées sorties de toutes les tâches (@InputFile et @OutputFile).
      Si pas encore d’output, il faut relancer le build. Si on l’a, et que les entrées sont les mêmes, on ne relance pas le build.

  • compilation incrémentale (comme sous Eclipse).

    • Gradle connaît les dep entre classes, et peut donc le faire, ce qui n’est pas le cas de javac.

    • Peut complètement être utilisé, même si expérimentale.
      20161115 ParisJUG quoi2neuf JEE fast builds gradle 03

  • continuous build

    • Avec l’option "-t".
      Exemple :

      gradle -t Asciidoctor
  • composite build : la killer feature de Gradle

    • Permet de gérer le mono ou multi repo (1 seul repo Git contenant 36 000 sous-projets)

    • Peut remplacer une dépendance binaire par une dépendance source !!!!

    • Pour débugger une dep problématique, c’est juste énorme.

      • Valable aussi pour les dep transitives, via le graphe de dépendances.

    • Se sert du fichier settings.gradle pour déclarer les builds multi-modules, ou utilise le flag --includeBuild

    • Permet d’exploser les monolith en multi-modules

  • task output cache (pour Gradle 4)

    • Pour partager le résultat d’un build sur le réseau (comme ça le voisin ne perdra pas 25 min sur son build si vous l’avez déjà fait !)
      Moins de compilation, meilleur pour la planète (GreenIT à communiquer)

  • la perf est une des priorités de Gradle
    20161115 ParisJUG quoi2neuf JEE fast builds gradle 04

  • sources sur GitHub

Voir "detached configuration" pour éviter la résolution de la configuration.

20161115 ParisJUG quoi2neuf JEE fast builds gradle 05

JEE quoi de neuf ?

Présenté par José PAUMARD.

20161115 ParisJUG quoi2neuf JEE fast builds gradle 06
Rappels Java EE 7
20161115 ParisJUG quoi2neuf JEE fast builds gradle 07
Etat des lieux Java EE 8

Retour sur les annonces de JavaOne et Devoxx BE

JEE semble quand même toujours très suivi, avec beaucoup de refs, de docs et de livres associés.

JavaOne : sur 450 prez, 50+ sur JEE

Java EE 8 : le New Deal

20161115 ParisJUG quoi2neuf JEE fast builds gradle 08 20161115 ParisJUG quoi2neuf JEE fast builds gradle 09

Java EE 8 :

  • JCache n’avance pas des masses (tout une histoire)

  • JSONB : binding pour Json fortement demandé

  • On va avoir dans la foulée les sorties de JEE 8 et 9 (en quelques mois)

  • On commence à avoir un grand écart entre les JEE et les JSE (grosse désynchronisation)

→ Java EE : regrouper ce qui marche bien, pour proposer un standard (exemple avec Hibernate et CDI), dans cet ordre.