Publier son site Maven sur GitHub Pages

Tout fier de son projet hébergé sur GitHub, il existe un mécanisme de publication de site statique, les GitHub Pages. Petit tour de piste pour configurer le déploiement de site Maven sur cet espace.

The Maven way

Le maven-site-plugin permet de déployer les sites via différents protocoles configurables avec des providers wagon. Coup de chance il existe une section pour l’utilisation des gh-pages: Deploying your Maven site to GitHub’s gh-pages.
Malheureusement je n’ai pas réussi à le faire fonctionner… Je suis tombé sur ce ticket qui donne des pistes (enfin pas sûr que ça fonctionne au final) mais qui indique surtout qu’il faut utiliser Maven SCM Publish Plugin.
Par contre ce n’est pas intégré à la fonctionalité de reporting de Maven, pas de mvn site-deploy out of the box.
Je ne l’ai pas testé, je me suis plutôt rabattu sur le plugin maven développé par GitHub qui avait l’air de répondre à mes attentes.

Plugin GitHub

Dans le repository officiel de GitHub est disponible le Site Plugin.
Un petit peu de configuration :

<plugin>
    <artifactId>maven-site-plugin</artifactId>
    <version>3.3</version>
    <configuration>
        <skipDeploy>true</skipDeploy>
    </configuration>
</plugin>
<plugin>
    <groupId>com.github.github</groupId>
    <artifactId>site-maven-plugin</artifactId>
    <version>0.8</version>
    <configuration>
        <message>Creating site for ${project.version}</message>
        <repositoryOwner>_</repositoryOwner>
        <repositoryName>_</repositoryName>
        <server>github</server>
    </configuration>
    <executions>
        <execution>
            <phase>site-deploy</phase>
            <goals>
                <goal>site</goal>
            </goals>
        </execution>
    </executions>
</plugin>

avec
repositoryOwner: nom d’utilisateur,
repositoryName: nom du repository,
server: identifiant du serveur dans settings.xml

<servers>
    <server>
        <id>github</id>
        <username>GitHubLogin</username>
        <password>GitHubPassw0rd</password>
    </server>
</servers>

Et voilà mvn site-deploy génère et publie le site sur vos gh-pages (peut prendre une dizaine de minutes avant qu’il ne soit disponible).

Si vous ne l’avez pas encore fait, pensez à utiliser le skin maven-fluido-skin qui modernise le rendu de votre site !

comments powered by Disqus