Cette page explique les méthodes de compilation, de test, et de création de packages de distribution de Fess.
Aperçu du système de compilation
Fess utilise Maven comme outil de compilation. Maven automatise la gestion des dépendances, la compilation, les tests et le packaging.
pom.xml
C’est le fichier de configuration de Maven. Il est placé dans le répertoire racine du projet.
Principaux contenus de configuration :
Informations du projet (groupId, artifactId, version)
Bibliothèques dépendantes
Plugins de compilation
Profils
Commandes de compilation de base
Compilation propre
Supprimez les artefacts de compilation, puis recompilez :
Création de package
Créez un fichier WAR et un package zip de distribution :
Les artefacts sont générés dans le répertoire target/ :
Compilation complète
Exécutez clean, compilation, tests et packaging :
Téléchargement des dépendances
Téléchargez les bibliothèques dépendantes :
Téléchargement des plugins OpenSearch
Téléchargez OpenSearch et les plugins requis :
Note
Cette commande est exécutée lors de la configuration de l’environnement de développement ou lors de la mise à jour des plugins.
Tests
Fess implémente les tests en utilisant JUnit.
Exécution des tests unitaires
Exécuter tous les tests unitaires
Exécuter une classe de test spécifique
Exécuter une méthode de test spécifique
Exécuter plusieurs classes de tests
Ignorer les tests
Pour compiler en ignorant les tests :
Avertissement
Pendant le développement, n’ignorez pas les tests et exécutez-les toujours. Avant de créer une PR, vérifiez que tous les tests passent.
Exécution des tests d’intégration
Les tests d’intégration nécessitent le profil integrationTests. Un serveur Fess et OpenSearch en cours d’exécution sont requis :
Note
Les classes de tests d’intégration utilisent le modèle *Tests.java (les tests unitaires utilisent *Test.java).
Rédaction de tests
Création de tests unitaires
Placement des classes de tests
Placez les classes de tests sous src/test/java/. La structure des packages doit être la même que le code principal.
Structure de base de la classe de test
Cycle de vie des tests
Assertions
Utilisez les assertions de JUnit 5 :
Couverture des tests
Mesurez la couverture des tests avec JaCoCo :
Le rapport est généré dans target/site/jacoco/index.html.
Formatage du code
Fess utilise les outils suivants pour maintenir la qualité du code.
Formateur de code
Uniformiser le style de codage :
En-têtes de licence
Ajouter les en-têtes de licence aux fichiers sources :
Vérifications avant le commit
Exécutez les deux avant de commiter :
Création de packages de distribution
Création de packages zip
Créez un package zip pour la distribution :
Artefacts générés :
Création de packages RPM
Création de packages DEB
Profils
Les profils Maven permettent de basculer entre les types de tests.
build (par défaut)
Le profil par défaut. Exécute les tests unitaires (*Test.java) :
integrationTests
Profil pour exécuter les tests d’intégration (*Tests.java) :
CI/CD
Fess utilise GitHub Actions pour exécuter CI/CD.
GitHub Actions
Les fichiers de configuration se trouvent dans le répertoire .github/workflows/.
Vérifications automatiquement exécutées :
Compilation
Tests unitaires
Création de packages
Vérification CI en local
Avant de créer une PR, vous pouvez exécuter les mêmes vérifications que CI en local :
Dépannage
Erreurs de compilation
Erreur : Échec du téléchargement des dépendances
Erreur : Mémoire insuffisante
Erreur : Version Java obsolète
Utilisez Java 21 ou supérieur :
Erreurs de test
Les tests expirent
Prolongez le délai d’expiration des tests :
OpenSearch ne démarre pas
Vérifiez les ports et changez-les s’ils sont utilisés :
Problèmes de dépendances
Conflits de dépendances
Vérifiez l’arbre des dépendances :
Exclure une dépendance spécifique :
Meilleures pratiques de compilation
Compilation propre régulière
Exécutez régulièrement une compilation propre pour éviter les problèmes de cache de compilation :
Exécution des tests
Exécutez toujours les tests avant de commiter :
Formatage du code
Exécutez le formatage du code avant de créer une PR :
Mise à jour des dépendances
Mettez à jour régulièrement les dépendances :
Utilisation du cache de compilation
Utilisez le cache Maven pour réduire le temps de compilation :
Référence des commandes Maven
Commandes couramment utilisées
Étapes suivantes
Après avoir compris les méthodes de compilation et de test, consultez la documentation suivante :
Flux de travail de développement - Flux de travail de développement
Guide de contribution - Directives de contribution
Architecture et structure du code - Compréhension du code source