Mar 7, 2018 3:51:29 PM seb leridon avatar   1208

Maven News / Switch to GitHub

1) Legacy of POMs

The inheritance tree of the POMs was on 4 levels:

  • global-pom
    • parent-pom
      • plugins-pom
        • project-pom

This had two disadvantages:

  • Complexity of reading configurations
  • Rigidity for updates that require multi-level releases

The new configuration of the POMs provides a direct legacy of global-pom .

The block

<parent>
        <artifactId>lutece-global-pom</artifactId>
        <groupId>fr.paris.lutece.tools</groupId>
        <version>3.0.3</version>
</parent>

must therefore be replaced by

<parent>
        <artifactId>Lutece-global-pom</artifactId>
        <groupId>fr.paris.lutece.tools</groupId>
        <version>3.0.3</version>
</parent>

The parent of the POM is no longer the parent-pom or the plugins-pom but the global-pom .

IMPORTANT This change is required for all plugins on GitHub or SVN .

2) The plugin configuration part of the pluginManagement section found in the parent-pom has been uploaded to global-pom .

3) The configuration of the maven plugin release has been modified to use a GIT provider based on the jgit implementation.

4) Passing Source Level and Target JDK from 1.6 to 1.7

5) The management of checkstyle + PMD rules files has been placed in a new artifact build-config whose sources are in GitHub. The version is based on a snapshot so that changes are taken into account without having to releaser the global-pom . Their update is done by a Jenkins job and does not require site-release.

6) A lot of information has been variabilized in the form of property.

<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 en.paris.lutece.tools:build-config ->
        <github.project>Lutece-platform</github.project>
        <twitter.account>LuteceFoundry</twitter.account>
        <openhub.id>7203</openhub.id>
</Properties>

New properties are used by the new skin:

  • github.project : GitHUB Project
  • twitter.account : Twitter account
  • openhub.id : OpenHUB ID (formerly Ohloh)

7) The PMD rules file was no longer compatible with PMD versions 4.x and 5.x. It is replaced by a set of rules files packaged in the artifact build-config .

8) The dashboard plugin to compile multiple reports has been removed (beta-1 version not maintained since 2008 and less evolved than Sonar )

9) Rising version of plugins:

Plugin Old Version New 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) Integration of a specific skin-based skin fluidoSkin 1.3.2-SNAPSHOT

This version is based on Bootstrap 3. The GitHub Ribbon, Twitter followers and OpenHUB macros have been activated.

New configuration also images of the banner.

11) Changes in the global-pom site files

These files containing the declaration and the setting of the skin serve as a base for the site files of the projects whose pom is parent to the global-pom.

12) The configuration of the distributionManagement of the sites has been reassembled from plugins-pom to global-pom