Skip to main content

Construire la solution Open ENT

Pour assurer une gestion efficace du développement, du déploiement et de la maintenance des différents modules d'Open ENT v3, nous avons mis en place des pratiques et des outils spécifiques. Ces pratiques permettent une gestion centralisée des dépendances, une construction simplifiée des containers, et un développement fluide en local avec des déploiements en temps réel. Vous trouverez ci-dessous les commandes clés et leurs descriptions pour gérer les projets backend avec Quarkus et frontend avec Nx.

Construire toute l'application Open ENT avec la partie serveur et la partie cliente

Avec Maven, il est possible de construire à la fois la partie serveur (backend) et la partie cliente (frontend). Node et NPM sont installés automatiquement par le plugin Maven eirslett/frontend-maven-plugin

Par défaut, la construction avec Maven de l'application Open ENT réalise :

  • le téléchargement des librairies nécessaires
  • la construction des librairies JAR d'Open ENT module par module
  • la construction du launcher

Avec des options supplémentaires en utilisant des profils Maven, des actions supplémentaires peuvent être déclenchées :

  • la construction des interfaces Web et le déploiement dans les différents modules (profil -Pfrontend)
  • la construction des containers
  • le déploiement des librairies dans un reférentiel de bibliothèque
  • le déploiement des containers dans un registre de container

A partir du répertoire principal, lancer la commande :

mvn install -Pfrontend

Pour construire uniquement la partie serveur

mvn install
tip

L'option -Dmaven.test.skip=true permet d'éviter de lancer les tests.

tip

L'application Open ENT peut être construite sous différents formats de package suivant votre déploiement ou vos tests.

Construire les modules séparément

Construire les modules sous forme de container Docker

La construction des containers est réalisable module par module en allant dans les répertoires de chaque module Par exemple pour le module portail, aller dans le repertoire /modules/portal et lancer la commande :

mvn install

Construire uniquement le frontend

Il est possible de construire uniquement le frontend avec NodeJS et Yarn sans maven en lançant les commandes suivantes dans le répertoire du frontend /frontend.

yarn install
yarn run nx

Commande Frontend avec Nx

Nx permet de gérer un mono-repository de code pour le développement de la partie cliente. Les commandes sont normalisées pour les différents

Pour chaque module, il est possible de :

  • construire l'application cliente du module pour la livraison
nx build 
  • lancer l'application cliente du module pour la tester
nx serve  

Déployer le code frontend du portail dans le module portail

Chaque module contient son propre frontend. Voici la commande pour déployer l'application frontend portal dans le module portal

yarn run build-deploy-portal

Construire uniquement le launcher

Dans le répertoire launcher, lancer la commande qui permettra de construire un container avec les différents modules :

mvn quarkus:image-build -Pjib

Il est possible de construire le container et le pousser directement dans un registre de container. Voici un exemple avec docker.io

mvn quarkus:image-build -Pjib -Dquarkus.container-image.build=true -Dquarkus.container-image.push=true -Dquarkus.container-image.registry=docker.io -Dmaven.test.skip=true -Dquarkus.container-image.tag=1.0.1-dev