Nouveautés Maven réalisées dans le cadre du passage à GitHub
Table des matières
- 1) Héritage des POMs
- 2) Plugin Management
- 3) Configuration du plugin release
- 4) Passage du niveau de source
- 5) Gestion des fichiers de règles checkstyle + PMD
- 6) Variabilisation d’informations
- 7) Fichier de règles PMD
- 8) Suppression du plugin dashboard
- 9) Montée de version des plugins
- 10) Intégration d’une skin spécifique
- 11) Changements des fichiers sites
- 12) Configuration du distributionManagement
1) Héritage des POMs
L’arbre d’héritage des POMs était sur 4 niveaux :
- global-pom
- parent-pom
- plugins-pom
- project-pom
- plugins-pom
- parent-pom
Ceci présentait deux inconvénients :
- Complexité de lecture des configurations
- Rigidité pour les mises à jour qui nécessitent des releases à plusieurs niveaux
La nouvelle configuration des POMs prévoit un héritage direct du global-pom.
Le bloc
<parent>
<artifactId>lutece-plugins-pom</artifactId>
<groupId>fr.paris.lutece.plugins</groupId>
<version>3.7</version>
</parent>
doit donc être remplacé par
<parent>
<artifactId>lutece-global-pom</artifactId>
<groupId>fr.paris.lutece.tools</groupId>
<version>3.0.3</version>
</parent>
Le parent des POM n’est donc plus le parent-pom ou le plugins-pom mais le global-pom.
IMPORTANT : Ce changement est nécessaire pour tous les plugins qu’ils soient sur GitHub ou SVN.
2) Plugin Management
La partie de la configuration de plugins de la section pluginManagement se trouvant dans le parent-pom a été remontée dans le global-pom.
3) Configuration du plugin release
La configuration du plugin release de maven a été modifiée pour utiliser un provider GIT basé sur l’implémentation jgit.
4) Passage du niveau de source
Passage du niveau de source et du JDK cible de 1.6 vers 1.7.
5) Gestion des fichiers de règles checkstyle + PMD
La gestion des fichiers de règles checkstyle + PMD a été placée dans un nouvel artifact build-config dont les sources sont en GitHub. La version est basée sur une snapshot pour que les modifications soient prises en compte sans devoir releaser le global-pom. Leur mise à jour se fait par un job Jenkins et ne nécessite pas site-release.
6) Variabilisation d’informations
De nombreuses informations ont été variabilisées sous forme de propriété.
<properties>
<memory.min>128m</memory.min>
<memory.max>896m</memory.max>
<targetJdk>1.7</targetJdk>
<java.source.version>1.7</java.source.version>
<sonar.host.url>http://dev.lutece.paris.fr/sonar</sonar.host.url>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven-site-plugin.version>3.4</maven-site-plugin.version>
<maven-checkstyle-plugin.version>2.11</maven-checkstyle-plugin.version> <!-- Pb with 2.12. 2.13 to access license header -->
<maven-pmd-plugin.version>3.3</maven-pmd-plugin.version>
<maven-lutece-plugin.version>4.0.0-SNAPSHOT</maven-lutece-plugin.version>
<maven-findbugs-plugin.version>3.0.0</maven-findbugs-plugin.version>
<serverUrl>dev.lutece.paris.fr</serverUrl>
<jiraBaseUrl>http://${serverUrl}/jira</jiraBaseUrl>
<organization.logo>http://dev.lutece.paris.fr/images/banner_left.png</organization.logo>
<build-config.location>build-config</build-config.location> <!-- directory provided by the artifact fr.paris.lutece.tools:build-config -->
<github.project>lutece-platform</github.project>
<twitter.account>LuteceFoundry</twitter.account>
<openhub.id>7203</openhub.id>
</properties>
De nouvelles propriétés sont utilisées par la nouvelle skin :
- github.project : Projet GitHUB
- twitter.account : Compte Twitter
- openhub.id : Identifiant OpenHUB (anciennement Ohloh)
7) Fichier de règles PMD
Le fichier de règles PMD n’était plus compatible avec les versions 4.x et 5.x de PMD. Il est remplacé par un ensemble de fichiers de règles packagé dans l’artifact build-config.
8) Suppression du plugin dashboard
Le plugin dashboard permettant de compiler plusieurs rapports a été supprimé (version beta-1 non maintenue depuis 2008 et moins évoluée que Sonar).
9) Montée de version des plugins
Plugin | Ancienne version | Nouvelle version |
---|---|---|
pmd | 2.7.1 | 3.3 |
checkstyle | 2.9.1 | 2.11 |
jdepend | 2.0-beta-2 | 2.0 |
project-info-reports | 2.5.1 | 2.8 |
site | 3.1 | 3.4 |
jxr | 2.3 | 2.5 |
changes | 2.8 | 2.11 |
change-log | 2.2 | 2.3 |
findbugs | 2.5.2 | 3.0.0 |
cobertura | 2.5.2 | 2.6 |
surefire | 2.12.4 | 2.18 |
war | 2.0 | 2.5 |
10) Intégration d’une skin spécifique
Intégration d’une skin spécifique basée sur la skin fluidoSkin 1.3.2-SNAPSHOT.
Cette version est basée sur Bootstrap 3. Les macros GitHub Ribbon, Twitter followers et OpenHUB ont été activées.
Nouvelle configuration également des images du bandeau.
11) Changements des fichiers sites
Ces fichiers contenant la déclaration et le paramétrage de la skin servent de base aux fichiers sites des projets dont le pom a pour parent le global-pom.
12) Configuration du distributionManagement
La configuration du distributionManagement des sites a été remontée du plugins-pom vers le global-pom.