De Jigsaw Project :
Facilitez la construction et la maintenance des bibliothèques et des applications volumineuses pour les développeurs, pour les plates-formes Java SE et EE).
J'essaie de savoir ce qu'est le projet Jigsaw et jusqu'à présent, il semble que l'objectif de Project Jigsaw chevauche quelque peu ce que nous avons fait en utilisant la gestion des dépendances Maven (ou Gradle):
Après Jigsaw, public
ne sera public que dans la portée JAR. Pour voir la classe en dehors du JAR, elle doit être exportée.
Java forcera la modularisation car toute interaction inter-module devra être spécifiée dans le module-info
fichier.
Par exemple, si vous produisez un WAR, il restera presque inchangé, mais tous les packages JAR du WAR doivent définir un module-info (ou ne pas le définir et être traités comme des modules automatiques ou sans nom).
Maven a 2 fonctionnalités principales: gestion des dépendances et construction:
Pour conclure: Maven sera toujours responsable de la construction, mais il faut apprendre à compiler et à empaqueter à l'aide des modules Jigsaw.
Les modules ne sont en aucun cas une menace pour construire des outils. Les modules complètent les outils de construction car les outils de construction construisent un graphique de dépendance des artefacts et de leurs versions au moment de la construction tandis que les modules appliquent dépendances des artefacts/modules (non compris les versions) au moment de la construction et de l'exécution.
Depuis État du système de modules :
"A module’s declaration does not include a version string, nor
constraints upon the version strings of the modules upon which it
depends. This is intentional: It is not a goal of the module system
to solve the version-selection problem, which is best left to build
tools and container applications."