Le projet suit le Google Java Style Guide. Il appliqué grâce à google-java-format. Ce formateur est appliqué sur les fichiers Java grâce au plugin Maven Spotless.
La CI vérifie que chaque fichier modifié dans une merge request respecte le codestyle. Pour cela,
l'étape suivante a été ajouter dans le fichier CI.yml
après le build with Maven afin d'exécute le
plugin Spotless et vérifier que tout le code respecte les règles définies dans la configuration Spotless :
- name: Run Spotless Check
run: mvn spotless:check
Pour vérifier manuellement si le code respecte le formatage requis :
mvn spotless:check
Pour appliquer automatiquement les corrections de formatage :
mvn spotless:apply
Pour éviter d'exécuter les commandes Maven manuellement, IntelliJ peut être configuré pour appliquer automatiquement le formatage correct.
- Téléchargez le fichier XML de style Google pour IntelliJ depuis ce dépôt.
- Dans IntelliJ, accédez à
IntelliJ IDEA > Settings > Editor > Code Style > Scheme > Import Scheme > IntelliJ IDEA Code Style XML.
- Importez le fichier téléchargé.
Pour automatiser l'application du codeStyle nous utilisons Lefthook.
Lefthook est un outil permettant d'automatiser et gérer les hooks Git (scripts exécutés
automatiquement à chaque étape clé, comme avant un commit ou un push).
Son fichier de configuration lefthook.yml
est présent à la racine du projet.
Lors de chaque commit, Lefthook exécutera spotless:apply
pour vérifier et appliquer le bon
bon formatage du code. Si des corrections sont effectuées par Spotless, il sera nécessaire de
vérifier
les modifications, puis d'ajouter les fichiers concernés à la zone de staging (via git add
) avant
de pouvoir finaliser le commit.
- Installer Lefthook sur son poste :
brew install lefthook
- À la racine du projet, installer lefthook :
lefthook install
Pour lancer l'application en local, exécutez la commande suivante :
mvn spring-boot:run
Il peut être nécessaire de déboguer l'API en local. Pour cela :
- Créez une configuration de debug dans IntelliJ
Edit Configuration -> Remote JVM Debug
Laissez les paramètres par défaut. - Lancez l'application en mode debug :
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"
- Executez la configuration Remote JVM Debug créée à l'étape 1.
Le projet applique les concepts de l'architecture hexagonale