Guide du Plugin Maven GraphQL AutoGen
🔧 Automatisez la génération de schémas GraphQL dans vos builds Maven !
📦 Installation
Ajoutez le plugin à votre fichier pom.xml
:
pom.xml
<build>
<plugins>
<plugin>
<groupId>io.github.tky0065</groupId>
<artifactId>graphql-autogen-maven-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- Configuration optionnelle -->
<basePackages>
<basePackage>com.example.model</basePackage>
<basePackage>com.example.controller</basePackage>
</basePackages>
<outputDirectory>${project.build.directory}/generated-sources/graphql</outputDirectory>
<schemaFileName>schema.graphqls</schemaFileName>
</configuration>
</plugin>
</plugins>
</build>
🎯 Goals disponibles
graphql-autogen:generate
Génère les schémas GraphQL à partir de vos classes annotées.
Utilisation
# Génération manuelle
mvn graphql-autogen:generate
# Intégration dans le build
mvn compile
⚙️ Configuration complète
Configuration avancée
<plugin>
<groupId>io.github.tky0065</groupId>
<artifactId>graphql-autogen-maven-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<id>generate-graphql-schema</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- Packages à scanner -->
<basePackages>
<basePackage>com.example.entities</basePackage>
<basePackage>com.example.controllers</basePackage>
</basePackages>
<!-- Configuration de sortie -->
<outputDirectory>${project.build.directory}/graphql-schemas</outputDirectory>
<schemaFileName>api-schema.graphqls</schemaFileName>
<encoding>UTF-8</encoding>
<!-- Options de génération -->
<includeIntrospection>true</includeIntrospection>
<skipGeneration>false</skipGeneration>
</configuration>
</plugin>
🎨 Exemples d'utilisation
Projet simple
Configuration minimale
<plugin>
<groupId>io.github.tky0065</groupId>
<artifactId>graphql-autogen-maven-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
Projet multi-modules
Configuration pour projet multi-modules
<!-- Dans le POM parent -->
<pluginManagement>
<plugins>
<plugin>
<groupId>io.github.tky0065</groupId>
<artifactId>graphql-autogen-maven-plugin</artifactId>
<version>1.0.1</version>
<configuration>
<outputDirectory>${project.build.directory}/graphql</outputDirectory>
<includeIntrospection>true</includeIntrospection>
</configuration>
</plugin>
</plugins>
</pluginManagement>
🔍 Dépannage
Plugin non trouvé
Erreur :
Plugin io.github.tky0065:graphql-autogen-maven-plugin not found
Solution :
Vérifiez que vous avez ajouté le bon groupId et artifactId, et que la version existe dans Maven Central.
Classes non trouvées
Erreur :
No GraphQL types found in specified packages
Solution :
- Vérifiez que vos classes sont bien annotées avec
@GraphQLType
- Assurez-vous que les packages spécifiés sont corrects
- Vérifiez que les classes sont dans le classpath
Debug
Activez le debug pour obtenir plus d'informations :
mvn graphql-autogen:generate -X
🚀 Bonnes pratiques
1. Organisation des packages
<basePackages>
<basePackage>com.example.entities</basePackage> <!-- Types GraphQL -->
<basePackage>com.example.dto</basePackage> <!-- Types Input -->
<basePackage>com.example.controllers</basePackage> <!-- Resolvers -->
</basePackages>
2. Nommage des fichiers
<schemaFileName>${project.artifactId}-schema.graphqls</schemaFileName>
3. Intégration CI/CD
<execution>
<id>generate</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
📚 Ressources
Conseil : Utilisez le plugin Maven pour automatiser la génération de schémas dans vos pipelines CI/CD et garantir la cohérence entre votre code et vos schémas GraphQL !