Maven

Maven est l’outil qui sert à compiler le serveur SAINet (principalement, toutes les sources qui se trouvent dans server).

Au préalable, la version 3.9.x la plus récente doit être installée et le dossier bin doit être ajouté à la variable d’environnement PATH.

Note:

Cette étape de compilation est nécessaire afin de pouvoir utiliser un serveur SAINet.

Test

Dans un terminal, la commande mvn --version doit donner à peu près ceci:

Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
Maven home: /path/to/apache-maven-3.9.5
Java version: 21, vendor: Debian, runtime: /usr/lib/jvm/java-21-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "6.1.0-9-amd64", arch: "amd64", family: "unix"

Configuration

Afin de pouvoir accéder au repository privé de SAINet, il est nécessaire de modifier le fichier de configuration ${user.home}/.m2/settings.xml afin d’ajouter les informations suivantes:

<!-- ... -->
  <servers>
    <server>
      <username>...</username>
      <password>...</password>
      <id>sai-central</id>
    </server>
    <server>
      <username>...</username>
      <password>...</password>
      <id>sai-snapshots</id>
    </server>
  </servers>
<!-- ... -->
Note:

Le dossier .m2 n’existe généralement pas, il faut le créer manuellement. Sous Windows, le ${user.home} est le dossier de l’utilisateur (C:\Users\<username>\).

Les identifiants peuvent être récupérés sur passbolt (Maven - reader).

Au final, le fichier settings.xml devrait ressembler à ceci (si aucune autre configuration n’est définie au préalable):

<settings>
  <servers>
    <server>
      <username>...</username>
      <password>...</password>
      <id>sai-central</id>
    </server>
    <server>
      <username>...</username>
      <password>...</password>
      <id>sai-snapshots</id>
    </server>
  </servers>
</settings>
Note:

Si l’utilisateur ou mot de passe contient des caractères XML spéciaux tels que &, <, >, ", ' ou !, Maven affichera une erreur lors de la compilation.

Dans ce cas, il faut simplement encapsuler la valeur dans un CDATA:

<password><![CDATA[passW!thSp<e>cialChars!]]></password>

Compilation

Pour compiler le projet dev / sainet, il suffit d’ouvrir un terminal et de lancer la compilation:

cd path/to/sainet
mvn clean install
Note:

Il est nécessaire d’avoir au moins 4Go de RAM disponible pour la compilation.

Une fois la compilation terminée, plusieurs fichiers/dossiers auront été créés, tels que l’EAR à déployer (server/SNV4SRV-ear/target/SNV4SRV.ear) ou les librairies pour le code à chaud (server/libapps/static et server/libapps/dynamic).

Info:

En utilisant le paramètre install au lieu de package, maven va copier les librairies (fichiers JARs) dans le dossier ${user.home}/.m2/repository, ce qui permettra ensuite de faire des recompilations partielles en utilisant l’option -pl.