Plugin Living Documentation
Diagrammes, fichiers et topologie des modules.
Référence complète du plugin Living Documentation HexaGlue : options de configuration, fichiers générés, diagrammes et support multi-module.
Ajouter le plugin Living Documentation
<plugin> <groupId>io.hexaglue</groupId> <artifactId>hexaglue-maven-plugin</artifactId> <version>6.0.0</version> <extensions>true</extensions> <configuration> <basePackage>com.acme.shop</basePackage> </configuration> <dependencies> <dependency> <groupId>io.hexaglue.plugins</groupId> <artifactId>hexaglue-plugin-living-doc</artifactId> <version>3.0.0</version> </dependency> </dependencies></plugin>La documentation est générée automatiquement lors de la phase generate-sources (mvn compile). Les fichiers sont écrits dans target/hexaglue/reports/{outputDir}/.
Trois éléments clés dans cette configuration :
<extensions>true</extensions>: active le binding automatique aux phases Maven. Les goals HexaGlue se déclenchent sans configuration supplémentaire lors demvn compile.<basePackage>: package racine à analyser. Seules les classes de ce package et de ses sous-packages sont classifiées par HexaGlue.- Le plugin Living Documentation est déclaré comme
<dependency>du plugin Maven, pas du projet. HexaGlue découvre automatiquement les plugins via le mécanisme JavaServiceLoader: il suffit de les ajouter ici pour qu'ils soient actifs.
Les projets utilisant Lombok sont pris en charge nativement depuis HexaGlue 6.0.0 : le delombok est injecté automatiquement avant l'analyse, aucune configuration spéciale n'est nécessaire côté plugin.
Paramètres Maven
<configuration> du plugin Maven dans le pom.xml.Ces paramètres contrôlent le package analysé, le comportement de validation et la gestion des fichiers obsolètes.
Le paramètre
skip peut aussi être passé en ligne de commande via -Dhexaglue.skip=true.| Option | Défaut |
|---|---|
basePackage | (requis) |
outputDirectory | target/hexaglue/generated-sources |
skip | false |
skipValidation | false |
failOnUnclassified | false |
tolerantResolution | false |
Options YAML
hexaglue.yaml, placé à la racine du projet (à côté du pom.xml), centralise la configuration de HexaGlue et de tous ses plugins.Les options ci-dessous se configurent dans la section
plugins.io.hexaglue.plugin.livingdoc: du fichier YAML.Les paramètres Maven (
<configuration>) sont prioritaires sur les valeurs YAML.| Option | Type | Défaut |
|---|---|---|
outputDir | string | "living-doc" |
generateDiagrams | boolean | true |
maxPropertiesInDiagram | integer | 5 |
includeDebugSections | boolean | true |
outputDirectory | string | (défaut global) |
plugins: io.hexaglue.plugin.livingdoc: outputDir: "living-doc" generateDiagrams: true maxPropertiesInDiagram: 5 includeDebugSections: trueStructure des fichiers générés
| Fichier | Contenu |
|---|---|
README.md | Vue d'ensemble : métriques, résumé du domaine, résumé des ports, contextes bornés, glossaire, arbre de packages, index des types |
domain.md | Modèle de domaine détaillé : agrégats (avec entités, VO, identifiants), services, événements, relations architecturales |
ports.md | Documentation des ports : ports driving (entrants) et driven (sortants) avec signatures des méthodes et types |
diagrams.md | Diagrammes Mermaid : modèle de domaine (classes), agrégats individuels, flux hexagonal, graphe de dépendances |
modules.md | Topologie des modules : tableau récapitulatif (rôles, comptages), inventaire détaillé des types par module |

Ce que contient le fichier principal
README.md est le point d'entrée de la documentation. Il donne une vue synthétique de l'architecture.
- Tableau récapitulatif : comptage des agrégats, entités, value objects, identifiants, services applicatifs, ports driving et driven
- Liens de navigation : vers
domain.md,ports.md,diagrams.md,modules.md - Diagramme d'architecture : diagramme Mermaid de vue d'ensemble (si diagrammes activés)
- Résumé du domaine : tableaux des agrégats, value objects, identifiants
- Résumé des ports : tableaux des ports driving et driven
- Contextes bornés : analyse de la structure des packages (si détectés)
- Topologie des modules : rôles et distribution des types par module (si multi-module)
- Glossaire : terminologie du domaine avec types et packages
- Arbre des packages : visualisation de l'arborescence
- Index : index alphabétique des types avec références croisées
4 types de diagrammes générés
Diagramme de classes du domaine
Tous les types du domaine avec leurs propriétés (limitées à maxPropertiesInDiagram) et leurs relations.
Diagrammes d'agrégats
Un diagramme par agrégat montrant la racine, les entités et les value objects associés.
Flux hexagonal
Diagramme montrant les interactions entre ports driving, services applicatifs, ports driven et adapters.
Graphe de dépendances
Graphe orienté des dépendances entre types, montrant la direction vers le domaine.
Topologie des modules
modules.md supplémentaire et ajoute une section topologie dans le README.md.Ce que contient modules.md
- Tableau récapitulatif : pour chaque module, son identifiant, son rôle (
DOMAIN,INFRASTRUCTURE,APPLICATION,API,ASSEMBLY,SHARED), le nombre de types et le package de base - Sections par module : inventaire détaillé de tous les types classifiés dans chaque module, organisés par rôle architectural
Le code change. La documentation aussi.
Générez-la à chaque build.
Voyez la documentation générée sur un projet réel ou explorez toutes les options du plugin.