Ceci est une ancienne révision du document !


Utiliser un repository Maven (Nexus)

Nexus (www.sonatype.org/nexus) est une solution web de gestion de repository. Il peut servir de proxy/cache pour accéler les téléchargements et éviter les problèmes de proxy web. Il peut aussi servir de repository privé pour partager des artefacts.

Dans le cadre du master un repository nexus est disponible : http://lsis.univ-tln.fr/nexus Il est accessible avec le compte guest dont le mot de passe vous sera donné.

Il est aussi possible d’ajouter le téléchargement des plugins depuis ce serveur

<pluginRepositories>
    <pluginRepository>
        <id>lsispluginrepository</id>
        <name>LSIS plugin repository</name>
        <url>http://lsis.univ-tln.fr/nexus/content/groups/public</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

Il juste d’ajouter dans le pom.xml ou dans le settings.xml la définition du repository.

<repositories>
    <repository>
        <id>lsispublicrepository</id>
        <name>Public Repositories</name>
        <url>http://lsis.univ-tln.fr/nexus/content/groups/public</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Ici le groupe public est un repository virtuel qui regroupe :

Si repository nécessite une authentification, il faut paramétrer les identifiants de connexions dans .m2/settings.xml.

<settings>
    <servers>
        <server>
            <!-- this id should match the id of the repo server in pom.xml -->
            <id>lsispublicrepository</id>
            <username>guest</username>
            <password>YYY</password>
        </server>
    </servers>
</settings>

Il faut paramétrer la distribution dans le pom.xml.

 <distributionManagement>
        <!-- Versioned releases repository -->
        <repository>
            <id>edureleaserepository</id>
            <name>Releases</name>
            <url>https://lsis.univ-tln.fr/nexus/content/repositories/edurelease</url>
        </repository>
 
        <!-- Snapshots repository -->
        <snapshotRepository>
            <id>edusnapshotrepository</id>
            <name>Snapshots</name>
            <url>https://lsis.univ-tln.fr/nexus/content/repositories/edusnapshots/</url>
        </snapshotRepository>
    </distributionManagement>

Puis ajouter le ou les repository au projet

<repositories>
    <repository>
        <id>lsispublicrepository</id>
        <name>Edu Repositories</name>
        <url>https://lsis.univ-tln.fr/nexus/content/groups/edu/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Ici edu est un groupe qui regroupe les releases et snapshot précédents.

Comme pour la section précédente, il faut ensuite paramétrer les identifiants de connexions dans .m2/settings.xml pour chaque reposirory en précisant exactement son id.

Il est alors possible de déployer les artefacts.

mvn deploy 

ainsi que les sources et la javadoc

mvn javadoc:jar source:jar deploy