Version obsolète v2.0.0 Cette documentation ne correspond plus à la version courante du plugin.
Version stable
Documentation

Plugin Audit
Contraintes, métriques et formats de rapport.

Référence complète du plugin d'audit HexaGlue : options de configuration, contraintes vérifiées, métriques calculées et formats de rapport.

Installation

Ajouter le plugin d'audit

pom.xml
<plugin>
<groupId>io.hexaglue</groupId>
<artifactId>hexaglue-maven-plugin</artifactId>
<version>5.0.0</version>
<extensions>true</extensions>
<configuration>
<basePackage>com.acme.shop</basePackage>
</configuration>
<dependencies>
<dependency>
<groupId>io.hexaglue.plugins</groupId>
<artifactId>hexaglue-plugin-audit</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
</plugin>

L'audit s'exécute automatiquement lors de la phase verify (mvn verify). Le rapport est généré dans target/hexaglue/reports/audit/.

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 de mvn compile ou mvn verify.
  • <basePackage> : package racine à analyser. Seules les classes de ce package et de ses sous-packages sont classifiées par HexaGlue.
  • Le plugin d'audit est déclaré comme <dependency> du plugin Maven, pas du projet. HexaGlue découvre automatiquement les plugins via le mécanisme Java ServiceLoader : il suffit de les ajouter ici pour qu'ils soient actifs.
Vue d'ensemble d'un rapport d'audit HexaGlue (sample-basic, score 76/C)
Rapport d'audit HexaGlue : vue d'ensemble du rapport HTML généré pour sample-basic avec verdict 76/100, grade C, inventaire architectural et métriques
Configuration

Options Maven

La configuration de l'audit se fait via les paramètres <configuration> du plugin Maven dans le pom.xml.
Ces paramètres contrôlent le comportement du build (échec sur violations) et l'emplacement des rapports générés.
Le paramètre skip peut aussi être passé en ligne de commande via -Dhexaglue.skip=true.
OptionTypeDéfaut
failOnErrorbooleantrue
failOnWarningbooleanfalse
reportDirectorystring${project.build.directory}/hexaglue/reports
skipbooleanfalse
pom.xml : configuration de l'audit
<plugin>
<groupId>io.hexaglue</groupId>
<artifactId>hexaglue-maven-plugin</artifactId>
<version>5.0.0</version>
<extensions>true</extensions>
<configuration>
<basePackage>com.acme.shop</basePackage>
<failOnError>true</failOnError>
<failOnWarning>false</failOnWarning>
<reportDirectory>${project.build.directory}/hexaglue/reports</reportDirectory>
</configuration>
<dependencies>
<dependency>
<groupId>io.hexaglue.plugins</groupId>
<artifactId>hexaglue-plugin-audit</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
</plugin>
mvn clean verify -Dhexaglue.skip=true
Contraintes

Contraintes DDD

Ces contraintes vérifient la conformité de votre modèle de domaine aux principes DDD.
IDNomSévérité
ddd:entity-identityIdentité des entitésCRITICAL
ddd:value-object-immutableImmuabilité des VOCRITICAL
ddd:aggregate-cycleCycles entre agrégatsBLOCKER
ddd:aggregate-repositoryRepository par agrégatMAJOR
ddd:aggregate-boundaryFrontières d'agrégatMAJOR
ddd:aggregate-consistencyCohérence d'agrégatMAJOR
ddd:domain-purityPureté du domaineMAJOR
ddd:event-namingNommage des événementsMINOR
Contraintes

Contraintes d'architecture hexagonale

Ces contraintes vérifient l'isolation des couches et le respect des patterns hexagonaux.
IDNomSévérité
hexagonal:dependency-directionDirection des dépendancesBLOCKER
hexagonal:port-interfacePorts = interfacesCRITICAL
hexagonal:dependency-inversionInversion de dépendanceCRITICAL
hexagonal:layer-isolationIsolation des couchesMAJOR
hexagonal:port-directionDirection des portsMAJOR
hexagonal:port-coverageCouverture des portsMAJOR
hexagonal:application-purityPureté applicativeMAJOR
Sévérités

Niveaux de sévérité

Chaque contrainte a un niveau de sévérité qui détermine son impact sur le build Maven.
Les deux niveaux les plus élevés (BLOCKER et CRITICAL) peuvent faire échouer la compilation, ce qui garantit que les violations graves sont corrigées avant le déploiement.
NiveauImpact sur le build
BLOCKERBuild échoue immédiatement, non contournable
CRITICALBuild échoue sauf si failOnError: false
MAJORAvertissement, le build continue
MINORInformation, faible priorité
Métriques

Métriques calculées

L'audit calcule 8 métriques de qualité architecturale. Chaque métrique a un seuil d'alerte configurable.
MétriqueCe qu'elle mesure
domain.coverageProportion des types classifiés dans la couche domaine
domain.purityProportion des types du domaine sans dépendance d'infrastructure
aggregate.avgSizeNombre moyen de méthodes par agrégat. Au-delà de 20, un refactoring est recommandé.
aggregate.boundaryProportion des entités correctement encapsulées dans leur agrégat
aggregate.repository.coverageProportion des agrégats ayant un port repository
aggregate.coupling.efferentCouplage moyen entre agrégats. Plus il est bas, plus les agrégats sont indépendants.
code.boilerplate.ratioProportion de code boilerplate (getters, setters, equals) dans les types du domaine
code.complexity.averageComplexité cyclomatique moyenne des méthodes du domaine

La métrique domain.purity détecte les imports d'infrastructure dans le domaine : JPA (javax.persistence, jakarta.persistence), Spring (org.springframework), Hibernate, Jackson, JDBC, SDKs cloud (AWS, Azure, GCP), messaging (Kafka, RabbitMQ), et les frameworks web/validation.

KPI Table : les 5 dimensions du score avec statuts On Target / At Risk / Below Target
Rapport d'audit HexaGlue : tableau KPI montrant les 5 dimensions (DDD, hexagonal, dépendances, couplage, cohésion) avec poids, scores et seuils colorés
Rapports

Formats de sortie

L'audit produit un rapport dans 3 formats de fichier, générés par défaut à chaque exécution.
La sortie console (avec couleurs ANSI) est toujours active en complément. Les fichiers sont générés dans target/hexaglue/reports/audit/.
FormatUsage
JSONConsommation programmatique, intégration avec des outils CI/CD
HTMLConsultation web, rapport partageable avec CSS intégré
MarkdownVersionnage Git, intégration GitHub, documentation
ConsoleAffichage terminal avec couleurs ANSI (toujours actif)

15 contraintes, 8 métriques, un rapport.
Configurez l'audit en quelques lignes.

Voyez les résultats de l'audit sur un projet réel ou explorez les contraintes et métriques disponibles.