Le premier élément primordiale du guide du développeur est l’installation du poste de développement. Si, lors de son installation de poste, un développeur a un doute ou a besoin d’une information supplémentaire, il doit capitaliser et enrichir, à son tour, la présente page.
Cette procédure ne prend pas en compte le paramétrage d’éventuel repository personnel ou de proxy.
Cette procédure peut sembler fastidieuse. Une installation de poste via la virtualisation est en effet plus rapide à exécuter pour chaque développeur. Mais, toute mise à jour de l’environnement de développement nécessite de retravailler la VM puis de la redistribuer à chacun. De plus, la virtualisation est maintenant limitée chez certaines ESN (pour des raisons de sécurité). Enfin, l’installation manuelle a l’avantage de faire comprendre à chacun le fonctionnement de chaque outil. Cela fait donc grandir chacun.
Ce dépôt contient des sub-modules GIT pour le thème GoHugo utilisé dans la documentation. La commande (documentation) pour faire un clone du dépôt est donc
git clone --recurse-submodules https://xxxxxxxxxxx
Si le paramètre –recurse-submodules n’a pas été utilisé au moment du clone, il est toujours possible de récupérer les sub-modules avec les commandes :
git submodule init
git submodule update
Un hook doit être installé pour mettre à jour la date des documents MD au moment de chaque commit. Pour cela, il faut copier le fichier aInstaller_pre-commit dans le répertoire .git/hooks en le renommant pre-commit. A chaque commit comprenant un fichier MD, un message apparaît :
Modification des dates dans les pages MD
pour 1-conception/content/X.xxx/X.Xxxxxxx.md
Pour plus de détails, se référer au §3.31
Le projet utilise Java-23.0.2. Pour le télécharger, le binaire est sur le site java.net.
Une fois téléchargé, il suffit
Le projet utilise Maven-3.9.9.
Pour installer Maven :
Pour construire (builder) très rapidement les projets du socle sans déclencher les tests automatisés, il est possible d’utiliser la commande mvn clean install -DskipTests -T 1C. Ce paramètre déclenche la parallélisation en utilisant tous les coeurs du processeur.
Si le poste de développement dispose de plusieurs version de Java. Il peut être utile de créer des raccourcis d’appel à Maven pour chaque version depuis la commande Git4Windows. Pour cela :
alias mvn19="JAVA_HOME=/d/xxxxxx/jdk-19/ && mvn" en remplaçant le chemin vers le JDK par le bon ainsi que la version dans l’aliasLe projet utilise Node-23.10.0. La compilation de tout le projet peut se faire via Maven car ce dernier télécharge un Node et un NPM pour construire le livrable des projets FRONT.
Mais, pour développer, installer Node et NPM sur son poste est nécessaire.
Pour installer Node et NPM, il suffit de :
L’idée n’est pas de multiplier les outils mais d’utiliser le bon outil pour le bon usage.
Les informations nécessaires à l’installation des IDEs sont regroupées ici mais ceci ne préjuge pas de l’ordre d’installation des outils (et tous ne sont pas forcément nécessaires).
Notepad++ est utilisé pour l’édition de la documentation.
Pour l’installer :
Pour installer le plugin DSpellCheck dans Notepad++ :
La version Eclipse-2025-03 est utilisée pour la partie Java.
Pour l’installer :
VScode est utilisé pour la partie Angular. Le projet utilise la dernière version disponible.
Pour l’installer VSCode :
_La couverture de code ne fonctionne plus depuis le passage en Angular-17 et le passage de webpack à ESbuild/Vite (cf. https://v17.angular.io/guide/esbuild) _
Pour consulter les classes TS présentes dans les dépendances, il faut ajouter l’extension ZipFS dans VSCode.
Pour manipuler le projet ias, il faut ajouter l’extension WSL (l’extension ansible nécessite l’exécutable installé sur Windows mais il ne fonctionne pas).
Compass est un IDE permettant de se connecter à une base de donnée MongoDB. Le projet utilise la dernière version disponible.
Pour l’installer :
Historiquement (avant 2024), Postman était l’IDE de prédilection pour les requêtes HTTP. Mais, en 2023, la modification de leur modèle économique et le stockage du travail de chacun sur Internet (et non sur le poste local), a poussé ses utilisateurs vers d’autres solutions. Pour rappel, d’un point de vue SECURITE, il n’est pas envisageable de stocker des requêtes, des identifiants ou des certificats sur Internet.
L’IDE à utiliser sur le projet est donc, maintenant, UseBruno.
Le projet utilise la dernière version disponible sur la page de téléchargement.
Une fois téléchargé et installé, il est nécessaire
L’usage de la collecion est décrit dans le chapitre 3.24.3. La création des certificats et clefs est décrites au chapitre $3.2.8 (plus loin dans cette page).
La configuration des IDE doit être commune à tous les développeurs de l’équipe pour permettre de maintenir une homogénéité du code et donc une bonne traçabilité des modifications.
Il est tout à fait autorisé de modifier l’apparence de son IDE (skin, thème, raccourcis, …) mais le paramétrage influant sur le code (formatage, import, …) ne doit pas être modifié.
Pour recevoir les emails envoyés par le système, il suffit d’installer smtp4dev en laissant le paramétrage par défaut et en le démarrant avec le programme Rnwood.Smtp4dev.exe.
Une fois démarré, l’interface graphique du serveur SMTP est disponible ici.
La documentation de l’outil est ici.
SpringBootCli est un outil en ligne de commande lié à SpringBoot. Il est principalement utilisé pour chiffrer/déchiffrer des clefs de configuration.
Pour l’installer, il faut (inspiré de la documentation officielle) :
Pour builder le projet une première fois, il suffit de lancer la commande mvn clean install depuis une ligne de commande ouverte à la racine du dépôt (puis de patienter).
Pour compiler les sources individuellement :
npm ciQuand on installe son poste, il ne faut jamais utiliser la commande npm install ou yarn install. npm ci ou yarn install --frozen-lockfile installe les dépendances exactes du package-lock.json ou du yarn.lock quand install recherche des dépendances compatibles.
Il se peut que, sur certains postes de développement professionnels, un certificat racine propre à la société soit paramétré. Ceci se vérifie dans Chrome :
Si le certificat Racine du service HTTPs appelé n’est pas délivré/vérifié par une autorité de certification standard, alors le certificat racine n’est pas présent dans le CACERT du JDK (qui contient déjà les principaux certificats racines du monde).
Deux solutions sont possibles :
Pour ajouter le certificat de votre entreprise, dans le trustore de Java (pour les tests automatisés) et dans le trustore utilisé par les micro-service, il faut :
cp "$JAVA_HOME/lib/security/cacerts" "$JAVA_HOME/lib/security/cacerts-saveXXXXX"
keytool -import -trustcacerts -file "/chemin/vers/le/certificat.cer" -alias certificatEntreprise -keystore "$JAVA_HOME/lib/security/cacerts" -storepass changeit
Pour vérifier que cette modification fonctionne (ou ne sert à rien), exécuter les tests du projet socle-commun et vérifier la bonne exécution des tests de la classe AbstractClientHttpTest.
Pour créer un certificat signé localement (source), il faut, en premier lieu, disposer d’une autorité de certification enregistrée dans Windows et dans Java. Pour cela, il faut :
keytool -delete -alias caRacineDevLocal -keystore "$JAVA_HOME/lib/security/cacerts" -storepass changeit
Warning: use -cacerts option to access cacerts keystore
mkdir -p 2-code/.certificatsLocaux/caRacine
cd 2-code/.certificatsLocaux/caRacine
openssl genrsa -des3 -out ca-clefAutoriteCertification.key -passout pass:mdpAutoriteCertification 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
.......................+++++
....+++++
e is 65537 (0x010001)
openssl req -x509 -new -nodes -key ca-clefAutoriteCertification.key -sha256 -days 1825 -out ca-certificatRacine.pem -passout pass:mdpAutoriteCertification -passin pass:mdpAutoriteCertification -subj "//C=FR/ST=Amiens/L=Amiens/O=Security/OU=general/CN=guillaumetalbot.com"
req: Skipping unknown attribute "/C"
echo $JAVA_HOMErm -f "$JAVA_HOME/lib/security/cacerts-save"
cp "$JAVA_HOME/lib/security/cacerts" "$JAVA_HOME/lib/security/cacerts-save"
keytool -import -trustcacerts -file "ca-certificatRacine.pem" -alias caRacineDevLocal -keystore "$JAVA_HOME/lib/security/cacerts" -storepass changeit
keytool -v -list -keystore "$JAVA_HOME/lib/security/cacerts" -storepass changeit | grep "Alias name" | grep caracinedevlocal
Warning: use -cacerts option to access cacerts keystore
Alias name: caracinedevlocal
Tous les micro-services du socle ne s’exposent exclusivement que sur une interface https. Le certificat TLS doit être signé avec l’autorité de certification créée précédemment. Pour cela, il faut :
0/ Pour recréer les éléments de ce chapitre, rien n’est réutilisable (car le CSR n’est pas conservé). Donc il faut supprimer tous les fichiers du répertoire 2-code/.certificatsLocaux/tls s’il existe.
1/ Créer un certificat propre à l’environnement de développement
mkdir -p 2-code/.certificatsLocaux/tls
cd 2-code/.certificatsLocaux/tls
openssl req -new -sha256 -nodes -out dev-certificatDeDeveloppementNonSigne.csr -newkey rsa:2048 -keyout dev-clefDeDeveloppement.key -passout pass:mdpCertificatDeDeveloppement -subj "//C=FR/ST=Amiens/L=Amiens/O=Security/OU=newPSL/CN=dev-psl.guillaumetalbot.com"
Generating a RSA private key
.............................................+++++
.....................+++++
writing new private key to 'dev-clefDeDeveloppement.key'
-----
req: Skipping unknown attribute "/C"
echo "authorityKeyIdentifier=keyid,issuer" >dev-confSignature.cnf
echo "basicConstraints=CA:FALSE" >>dev-confSignature.cnf
echo "keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment" >>dev-confSignature.cnf
echo "subjectAltName=DNS:machineUbuntuTest,DNS:dev-psl.guillaumetalbot.com,DNS:*.dev-psl.guillaumetalbot.com,DNS:localhost,IP:127.0.0.1" >>dev-confSignature.cnf
openssl x509 -req -in dev-certificatDeDeveloppementNonSigne.csr -passin pass:mdpAutoriteCertification -CA ../caRacine/ca-certificatRacine.pem -CAkey ../caRacine/ca-clefAutoriteCertification.key -CAcreateserial -out dev-certificatDeDeveloppementSigne.crt -days 3650 -sha256 -extfile dev-confSignature.cnf
Signature ok
subject=ST = Amiens, L = Amiens, O = Security, OU = newPSL, CN = dev-psl.guillaumetalbot.com
Getting CA Private Key
rm dev-confSignature.cnf
rm dev-certificatDeDeveloppementNonSigne.csr
openssl pkcs12 -export -out keystore.p12 -inkey dev-clefDeDeveloppement.key -in dev-certificatDeDeveloppementSigne.crt -certfile ../caRacine/ca-certificatRacine.pem -password pass:changeit
cheminRelatifKeystore="../.certificatsLocaux/tls/keystore.p12"
motdepasseKeystore="changeit"
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-DcheminKeystore=../../.certificatsLocaux/tls/keystore.p12 -DmdpKeystore=changeit"/>
Certains micro-services du socle exposent des APIs d’administration exclusivement accessibles si la requête contient un certificat autorisé. Pour cela, il faut :
mkdir -p 2-code/.certificatsLocaux/authAdmin
cd 2-code/.certificatsLocaux/authAdmin
openssl genrsa -out certificatClientAppelApiAdmin-clefPrivee.key 4096
MSYS_NO_PATHCONV=1 openssl req -new -key certificatClientAppelApiAdmin-clefPrivee.key -out certificatClientAppelApiAdmin-certifNonSigne.csr -nodes -subj "/CN=developeurLocal1/OU=talbotgui/O=github/C=com"
echo "[SAN]" >opensslConf.txt
echo "subjectAltName=DNS:dev-psl.guillaumetalbot.com,DNS:localhost" >>opensslConf.txt
openssl x509 -req -days 360 -in certificatClientAppelApiAdmin-certifNonSigne.csr -passin pass:mdpAutoriteCertification -CA ../caRacine/ca-certificatRacine.pem -CAkey ../caRacine/ca-clefAutoriteCertification.key -CAcreateserial -out certificatClientAppelApiAdmin-certifSigne.crt -sha256 -extensions SAN -extfile opensslConf.txt
rm opensslConf.txt
openssl pkcs12 -export -out certificatClientAppelApiAdmin.p12 -inkey certificatClientAppelApiAdmin-clefPrivee.key -in certificatClientAppelApiAdmin-certifSigne.crt -password pass:changeit
* _L'astuce du MSYS_NO_PATHCONV est décrite [ici](https://github.com/git-for-windows/git/issues/577#issuecomment-166118846)._
Supprimer le fichier certificatClientAppelApiAdmin-certifNonSigne.csr
Sont dont présents les fichiers
Ajouter dev-psl.guillaumetalbot.com dans les sites de confiances
2/ Créer un truststore pour contenir les certificats “client” autorisés
keytool -import -trustcacerts -noprompt -alias certificatClientAppelApiAdmin1 -ext san=dns:dev-psl.guillaumetalbot.com,localhost,ip:127.0.0.1 -file certificatClientAppelApiAdmin-certifSigne.crt -keystore certificatClientAppelApiAdmin.jks -storepass changeit -keypass changeit
cheminRelatifTruststore="../.certificatsLocaux/authAdmin/certificatClientAppelApiAdmin.jks"
motdepasseTruststore="changeit"
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="xxxxx -DcheminTruststore=../../.certificatsLocaux/authAdmin/certificatClientAppelApiAdmin.jks -DmdpTruststore=changeit"/>
Pour tester le certificat et le trustStore, après avoir démarré l’ensemble du socle, il est possible d’exécuter les commandes suivantes (en remplaçant le port par celui du micro-service)
curl -vk --cert certificatClientAppelApiAdmin-certifSigne.crt --key certificatClientAppelApiAdmin-clefPrivee.key https://dev-psl.guillaumetalbot.com:65129/socle/notification/admin/statistiques
curl -vk --cert-type P12 --cert certificatClientAppelApiAdmin.p12:changeit https://dev-psl.guillaumetalbot.com:65129/socle/notification/admin/statistiques
PKCS12 est le format standard des keystores (à opposer à JKS qui est propre à Java). Depuis la version 8 de Java, ce dernier gère les PKCS12. (source baeldung).
Installer les machines WSL :
echo "activer WSL"
wsl --install
echo "lister les machines"
wsl --list
echo "pour chaque machine, exécuter"
wsl --unregister XXX
echo "créer une clef SSH pour permettre à Ansible de se connecter à la machine"
del %USERPROFILE%\.ssh\wsl.key
del %USERPROFILE%\.ssh\wsl.key.pub
ssh-keygen -t rsa -b 2048 -f %USERPROFILE%/.ssh/wsl.key -N ""
echo "mettre à jour WSL"
wsl --update
echo "installer la version d'Ubuntu par défaut"
wsl --install -d Ubuntu
echo "démarer l'instance"
wsl -d Ubuntu
sudo ls /etc pour que les prochaines commandes sudo ne réclame pas de mot de passe (pour tout copier/coller)echo "suppression des fichiers (pas dans le même bloc que leur création)"
sudo rm -f /etc/wsl.conf
sudo rm -f /etc/resolv.conf
rm -rf ~/.ssh
echo "activation de systemd sur la machine (et création du fichier)"
echo '[boot]' | sudo tee /etc/wsl.conf
echo 'systemd=true' | sudo tee -a /etc/wsl.conf
echo '[network]' | sudo tee -a /etc/wsl.conf
echo "déclarer un DNS pour accéder à Internet (sans support du proxy Windows)"
echo 'generateResolvConf=false' | sudo tee -a /etc/wsl.conf
echo "pour pouvoir manipuler le nom de la machine"
echo 'hostname = machineUbuntuTest' | sudo tee -a /etc/wsl.conf
echo 'nameserver 8.8.8.8' | sudo tee -a /etc/resolv.conf
sudo chattr +i /etc/resolv.conf
echo "pour forcer la connexion avec le compte ubuntu"
echo '[user]' | sudo tee -a /etc/wsl.conf
echo 'default=ubuntu' | sudo tee -a /etc/wsl.conf
echo "pour pouvoir manipuler les autorisations (chmod) depuis WSL sur des répertoires Windows"
echo '[automount]' | sudo tee -a /etc/wsl.conf
echo 'options = "metadata"' | sudo tee -a /etc/wsl.conf
echo "initialiser le fichier des clefs RSA autorisées (en remplaçant par le bon login)"
mkdir ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
cat /mnt/c/Users/$USERNAME/.ssh/wsl.key.pub >~/.ssh/authorized_keys
sed -i 's/@.*/@localhost/g' ~/.ssh/authorized_keys
echo "vérifier que tout est fait (9, 1, 1)"
wc -l /etc/wsl.conf
cat /etc/resolv.conf | grep 8.8.8.8 | wc -l
cat ~/.ssh/authorized_keys | grep localhost | wc -l
echo "Activation des releases non LTS"
sudo sed -i 's/=lts/=normal/g' /etc/update-manager/release-upgrades
echo "Mise à jour du système (répondre yes et attendre)"
sudo do-release-upgrade
echo "mettre à jour la machine"
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
echo "Afficher la version installée"
lsb_release -a
echo "personnalisation du répertoire par défaut de la machine (à customiser)"
echo "" >> ~/.bashrc
echo "#répertoire par défaut à la connexion" >> ~/.bashrc
echo "cd /mnt/d/xxx/2-code/ias" >> ~/.bashrc
echo "sortir de la machine"
exit
echo "complètement arrêter WSL pour prendre en compte le paramétrage"
wsl --shutdown
echo "se placer dans le répertoire 2-code/ias/machinesWsl"
cd xxxxxxxxxxxxxxxxxxxxx
echo "supprimer les machines existantes (si présentes)"
del ubuntu_nue.tar
rmdir UbuntuAnsible
rmdir UbuntuTest
echo "création d'une photo de la machine"
wsl --export Ubuntu ubuntu_nue.tar
echo "création des nouvelles instances basées sur l'image"
wsl --import UbuntuAnsible .\UbuntuAnsible ubuntu_nue.tar
wsl --import UbuntuTest .\UbuntuTest ubuntu_nue.tar
Pour démarrer les machines, depuis deux lignes de commande DOS différentes, exécuter
wsl -d UbuntuAnsiblewsl -d UbuntuTestDans la machine UbuntuTest, exécuter les commandes :
echo "personnalisation du prompt"
echo "" >> ~/.bashrc
echo "# personnalisation du prompt" >> ~/.bashrc
echo "PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@test\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '" >> ~/.bashrc
. ~/.bashrc
echo "installer openssh-server"
sudo apt-get install openssh-server -y
sudo systemctl enable ssh
echo "installer ACL pour permettre le démarrage des applicatifs avec le compte www"
sudo apt-get install acl
echo "vérifier que openssh est démarré (doit s'afficher en vert 'active (running)')"
sudo service ssh status
echo "installer une librairie nécessaire à MongoDB (pour le message : libcrypto.so.1.1: cannot open shared object file: No such file or directory)"
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb
sudo dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb
rm libssl1.1_1.1.0g-2ubuntu4_amd64.deb
echo "paramétrer le hostname (le fichier /etc/hosts est une copie du fichier C:\Windows\System32\drivers\etc\hosts de Windows)"
echo 'machineUbuntuTest' | sudo tee /etc/hostname
Pour tester la bonne connexion à la machine UbuntuTest,
ssh -i C:/Users/%username%/.ssh/wsl.key ubuntu@localhost
Dans la machine UbuntuAnsible, exécuter les commandes :
echo "personnalisation du prompt et ajout d'un chemin dans le path"
echo "" >> ~/.bashrc
echo "# personnalisation du prompt" >> ~/.bashrc
echo "PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@ansible\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '" >> ~/.bashrc
. ~/.bashrc
echo "installation d'Ansible (pipx est long à s'exécuter - cf. https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html)"
sudo apt install pipx -y
pipx install --include-deps ansible
echo 'export PATH="/home/ubuntu/.local/bin:$PATH"' >> ~/.bashrc
. ~/.bashrc
echo "vérifier la bonne installation"
ansible --version
echo "correction des droits sur la clef SSH (chemin à adapter avec la variable saisie dans les scripts Ansible)"
sudo chmod 600 /mnt/c/Users/%username%/.ssh/wsl.key
echo "Installer les logiciels nécessaires à la documentation d'Ansible (pipx peut être long à s'exécuter)"
sudo apt-get update
sudo apt-get install graphviz -y
pipx install ansible-playbook-grapher
echo "première installation - commandes de préparation (avec droits SUDO)"
ansible-playbook ansible/01_preparer.yml -i ansible/inventory/local -K --extra-vars "ansible_user=ubuntu"
ansible-playbook ansible/02_installer.yml -i ansible/inventory/local
ansible-playbook ansible/03_deployer.yml -i ansible/inventory/local
ansible-playbook ansible/04_demarrer.yml -i ansible/inventory/local
ansible-playbook ansible/05_statuer.yml -i ansible/inventory/local
ansible-playbook ansible/06_arreter.yml -i ansible/inventory/local
Tous les applicatifs répondent sur le DNS dev-psl.guillaumetalbot.com. Mais ce DNS n’existe pas. Il faut donc le déclarer à Windows. Pour ce faire :
# dev local
::1 dev-psl.guillaumetalbot.com admin.dev-psl.guillaumetalbot.com
# Nécessaire pour que les applicatifs s'enregistrent auprès du service-admin quand ils sont démarrés depuis Git4Windows avec le script demarrerTout.sh
127.0.0.1 dev-psl.guillaumetalbot.com admin.dev-psl.guillaumetalbot.com
# mais les appels interne à Ubuntu sont aussi résolus simplements (rappel : le hosts de Windows est copié dans WSL)
127.0.0.1 machineUbuntuTest
L’applicatif socle-referentiel télécharge un fichier de plus de 1Go et le conserve, sur disque, en guise de cache. Or seule une toute petite portion du fichier est nécessaire. Pour limiter l’espace pris par ce cache, il faut :
cd 2-code/socle/.cache
unzip referentiel-dataGouv-siret
rm referentiel-dataGouv-siret
mv StockEtablissement_utf8.csv StockEtablissement_utf8_original.csv
cat StockEtablissement_utf8_original.csv | grep A,MAIRIE >StockEtablissement_utf8.csv
rm StockEtablissement_utf8_original.csv
Si l’applicatif socle-referentiel, s’exécutant sur la machine WSL est long à démarrer, copier le fichier de cache dans le bon répertoire en exécutant les commandes :
sudo su - www
mkdir /psl/applicatifs/socle-referentiel/.cache
cp /mnt/d/xxx/2-code/socle/.cache/referentiel-dataGouv-siret /psl/applicatifs/socle-referentiel/.cache/
npm cache clean -f
En cas d’erreur, dans les tests automatisés, du type Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target : ajouter -Djavax.net.debug=all dans la configuration du test et relancer le test.
Pour se simplifier la vie, une fois le compte www créé sur la machine UbuntuTest, il est utile de créer ces alias :
echo "ajouter un alias pour tout demarrer/arrêter dans le compte www"
sudo su - www
echo "alias demarrerTout='/psl/applicatifs/service-gateway/service-gateway.sh startAndWait ; /psl/applicatifs/service-registry/service-registry.sh startAndWait ; /psl/applicatifs/service-nosql/service-nosql.sh startAndWait ; /psl/applicatifs/service-config/service-config.sh startAndWait ; /psl/applicatifs/service-admin/service-admin.sh startAndWait ; /psl/applicatifs/service-ldap/service-ldap.sh startAndWait ; /psl/applicatifs/socle-dbbrouillon/socle-dbbrouillon.sh startAndWait ; /psl/applicatifs/socle-dbconfiguration/socle-dbconfiguration.sh startAndWait ; /psl/applicatifs/socle-dbdocument/socle-dbdocument.sh startAndWait ; /psl/applicatifs/socle-dbnotification/socle-dbnotification.sh startAndWait ; /psl/applicatifs/socle-referentiel/socle-referentiel.sh startAndWait ; /psl/applicatifs/socle-referentielexterne/socle-referentielexterne.sh startAndWait ; /psl/applicatifs/socle-securite/socle-securite.sh startAndWait ; /psl/applicatifs/socle-soumission/socle-soumission.sh startAndWait ; /psl/applicatifs/socle-transfert/socle-transfert.sh startAndWait ; /psl/applicatifs/socle-admin/socle-admin.sh startAndWait'" >> .bashrc
echo "alias arreterTout='/psl/applicatifs/service-nosql/service-nosql.sh stop && /psl/applicatifs/service-config/service-config.sh stop && /psl/applicatifs/service-admin/service-admin.sh stop && /psl/applicatifs/service-ldap/service-ldap.sh stop && /psl/applicatifs/socle-dbbrouillon/socle-dbbrouillon.sh stop && /psl/applicatifs/socle-dbconfiguration/socle-dbconfiguration.sh stop && /psl/applicatifs/socle-dbdocument/socle-dbdocument.sh stop && /psl/applicatifs/socle-dbnotification/socle-dbnotification.sh stop && /psl/applicatifs/socle-referentiel/socle-referentiel.sh stop && /psl/applicatifs/socle-referentielexterne/socle-referentielexterne.sh stop && /psl/applicatifs/socle-securite/socle-securite.sh stop && /psl/applicatifs/socle-soumission/socle-soumission.sh stop && /psl/applicatifs/socle-transfert/socle-transfert.sh stop && /psl/applicatifs/service-gateway/service-gateway.sh stop && /psl/applicatifs/socle-admin/socle-admin.sh stop && /psl/applicatifs/service-registry/service-registry.sh stop'" >> .bashrc
echo "alias statutTout='/psl/applicatifs/service-gateway/service-gateway.sh status && /psl/applicatifs/service-registry/service-registry.sh status && /psl/applicatifs/service-nosql/service-nosql.sh status && /psl/applicatifs/service-config/service-config.sh status && /psl/applicatifs/service-admin/service-admin.sh status && /psl/applicatifs/service-ldap/service-ldap.sh stop && /psl/applicatifs/socle-dbbrouillon/socle-dbbrouillon.sh status && /psl/applicatifs/socle-dbconfiguration/socle-dbconfiguration.sh status && /psl/applicatifs/socle-dbdocument/socle-dbdocument.sh status && /psl/applicatifs/socle-dbnotification/socle-dbnotification.sh status && /psl/applicatifs/socle-referentiel/socle-referentiel.sh status && /psl/applicatifs/socle-referentielexterne/socle-referentielexterne.sh status && /psl/applicatifs/socle-securite/socle-securite.sh status && /psl/applicatifs/socle-soumission/socle-soumission.sh status && /psl/applicatifs/socle-transfert/socle-transfert.sh status && /psl/applicatifs/socle-admin/socle-admin.sh status'" >> .bashrc
. ~/.bashrc
alias mvn8="JAVA_HOME=/d/xxxxxx/jdk-1.8.0.212 && mvn"
alias mvn11="JAVA_HOME=/d/xxxxxx/jdk-11.0.20.1+1 && mvn"
alias mvn17="JAVA_HOME=/d/xxxxxx/jdk-17.0.2 && mvn"