4 nov. 2021, 15:03:15 Thomas Dumont

Gestion des projets avec GitHub

GitHub

Table des matières

Depuis décembre 2014, le code source des plugins génériques (ancienne branche /portal/trunk du SVN) est migré sur la plateforme GitHub : https://github.com/lutece-platform

Chaque plugin ou module dispose de son propre repository dans GitHub.
Le nom du repository est construit de la manière suivante :

lutece-[//catégorie//]-[ plugin | module | library ]-[//nom plugin//]

Il n’y a donc plus d’arborescence comme dans SVN.

Organisation en local et outillage

Il est suggéré de se créer un répertoire local :
~/java/github/lutece ou c:\java\github\lutece
que nous désignerons par la variable LUTECE_GITHUB_HOME.

Des scripts utilitaires sont disponibles à l’adresse suivante : https://github.com/lutece-platform/git-scripts
Téléchargez-les à l’aide du bouton Download Zip et installez-les dans le répertoire LUTECE_GITHUB_HOME.

  • Pour une première installation des repositories :
    lancer le script init_projects.sh.
    Ce script créera un répertoire pour chaque repository et fera une copie locale de celui-ci (//git clone//).

  • Pour une mise à jour de l’ensemble des projets :
    lancer le script update_projects.sh.
    Ce script fera une mise à jour du repository local de tous les projets (//git pull//).

Pour plus d’informations sur l’utilisation de ces scripts, veuillez vous référer à la page howto_git_tools.

Travail en multi-projets

Pour travailler en multi-projets, copiez le pom.xml principal dans le répertoire LUTECE_GITHUB_HOME et dans la définition du profil multi-project, modifiez la liste des projets.

<profile>
    <id>multi-project</id>
    <modules>
        <module>lutece-core</module>
        <module>lutece-search-library-lucene</module>
        <module>lutece-cms-plugin-document</module>
        ...
    </modules>
</profile>

Migration des composants de SVN vers GIT

  • Pour migrer les composants génériques de l’ancien SVN (/portal/trunk/) :
    Lancer le script import_svn_project.sh avec comme paramètres :
    ** le nom de la catégorie dans SVN
    ** le nom du composant
    ** le nom de la catégorie dans GitHub

Ex : import_project.sh cms plugin-document cms