Accueil Plugin Maven

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 !