-
Notifications
You must be signed in to change notification settings - Fork 47
Description
Hello,
Je n'ai pas regardé encore comment vous construisez les binaires (jar) Java, mais cet article est me semble-t-il assez en phase avec votre cas :
https://medium.com/uptake-tech/migrating-to-java-11-while-maintaining-a-java-8-client-library-f618a3ca6499
L'idée générale est :
- Le coeur (non client) est écrit et compilé en Java 11 (mais impose bien sûr d'être exécuté en Java 11, et donc que tout un chacun dispose d'une telle version de Java sur ses OS)
- Les clients (librairies) sont écrites et compilées en Java 8 afin d'être compatible Java 8 (pas de pression sur les "clients" externes qui utilisent vos outils).
Malheureusement, pas moyen, selon la littérature, d'avoir une compilation d'un code source Java 11 vers un code Java 8 sans risque sans cette option -release qui check la compatibilité du code source (et donc impose les changements dans le code source pour être compatible). Pas de compatibilité descendante (11 vers 8), mais uniquement ascendante (8 vers 11).
En limitant les modifications de compatibilité aux librairies dites "clientes" (et elles sont nombreuses dans Vitam), cela restreint la portée de maintenir Java 8 dans le code (10 à 20% du code total ?). C'est un moindre mal, sans doute.
Qu'en pensez-vous ?