# GitHub publie un outil pour gérer les dépendances transitives Java

_Publié le 4 novembre 2026 — https://ip73.fr/2026/11/04/github-publie-un-outil-pour-gerer-les-dependances-transitives-java/_

Un script, `pin-transitives.mjs`, est désormais disponible sur GitHub pour aider les équipes à gérer les dépendances transitives dans les applications Java. Cet outil permet d'analyser l'arbre de dépendances produit par Maven, puis d'interroger Renovate afin d'identifier les mises à jour de sécurité disponibles, et potentiellement de générer un *Bill of Materials* (BOM).

Le problème qu'il adresse est bien connu dans le développement Java : alors que les dépendances directes sont faciles à mettre à jour avec des outils comme Renovate ou Dependabot, ce sont les centaines de bibliothèques qui s'installent en arrière-plan – les transitives – qui représentent le véritable talon d'Achille de la chaîne d'approvisionnement logicielle. Si une faille de sécurité apparaît au plus profond de l'arbre, un simple changement de version directe ne suffit pas à remonter la menace.

Lightwell propose des *rebuilds* d'entreprise pour ces bibliothèques open source. Face aux politiques de conformité qui varient d'une entreprise à l'autre, l'outil offre trois stratégies pour intégrer ces paquets fiables dans les pipelines. L'une d'elles est l'analyse ciblée des dépendances.

Ce processus évalue l'intégralité de la hiérarchie des dépendances par rapport à l'index Lightwell. Il génère un rapport détaillé qui fait correspondre les composants standards aux *rebuilds* Lightwell. Les équipes peuvent alors examiner ces résultats selon leurs politiques internes, sans modifier leurs fichiers de construction immédiatement. L'outil peut, par exemple, révéler que `org.springframework:spring-core` passe de `5.3.18` à `5.3.18.rhlw-00001`.

Une autre approche, plus contraignante mais offrant une auditabilité totale, est l'épinglage des dépendances via un BOM généré. En utilisant le script avec l'option `--write`, on produit un fichier structuré, comme `lightwell-pins.xml`. Ce fichier contient les déclarations `dependencyManagement` qui fixent les paquets standards aux versions Lightwell sécurisées. Pour l'intégrer, il suffit de l'importer dans la configuration principale du projet.

Le script lui-même exécute Maven pour obtenir l'arbre JSON des dépendances, puis lance Renovate. Il liste les mises à jour, qu'elles soient directes ou transitives, sans modifier le `pom.xml` par défaut. Si l'on ajoute l'option `--write`, il génère le BOM, créant un fichier `com.lightwell:rhlw-pins:0.0.1`.

Il est à noter que les presets de Renovate, disponibles dans le dépôt `lightwell-experience/renovate-config`, permettent déjà de gérer ces scénarios. Par exemple, le preset `java-remediated` ne fait que incrémenter le *rebuild* Lightwell (de `3.7.1.rhlw-00001` à `3.7.1.rhlw-00002`), tandis que `java-upgrade` permet des sauts vers des versions majeures en conservant les artefacts Lightwell.

Pour que l'outil fonctionne, l'application doit avoir `renovate.json` et Renovate doit être installé. L'exécution de `node scripts/pin-transitives.mjs --write` produit le fichier BOM, que l'on peut ensuite installer via `mvn install:install-file`.

## Sources

- [renovate-config/scripts/pin-transitives.mjs at main · lightwell-experience/renovate-config](https://github.com/lightwell-network/renovate-config/blob/main/scripts/pin-transitives.mjs), github.com
- [GitHub - lightwell-experience/renovate-config: Config presets for Renovate](http://github.com/lightwell-network/renovate-config), github.com
- [Manage Java transitive dependencies with Lightwell rebuilds](https://developers.redhat.com/articles/2026/11/03/manage-java-transitive-dependencies-lightwell-rebuilds), Red Hat Developer, 3 novembre 2026
