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
L'option -Dmaven.test.skip=true
permet d'éviter de lancer les tests.
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