- Financeur : Eau de Paris
- Objet : SIG Open Source - Echanges REMOCRA / WatGIS -Interface REMOCRA - Synchronisation des caractéristiques techniques et des disponibilités avec Remocra et suivi de la synchronisation
Les commandes sont exécutées dans le répertoire racine du projet.
Elles sont démarrées via des conteneurs :
# Démarrage d'une instance Remocra
# TODO cf. projet atolcd/sdis-remocra
# Démarrage de dépendances directes
(cd docker && docker-compose up)
Voir le fichier docker/README.md pour plus de détails.
Maven :
mvn clean compile exec:java \
-Dedp.database.serverName=localhost \
-Dexec.args="help"
Docker :
docker run --network="host" --rm \
--name edp-dev \
-u $(id -u):$(id -g) \
-v "$(pwd)":/app -w /app \
-v ~/.m2:/var/maven/.m2 -v "${HOME}":/var/maven \
-e HOME=/var/maven -e MAVEN_CONFIG=/var/maven/.m2 -e MAVEN_OPTS="-Duser.home=/var/maven" \
\
maven:3-jdk-11 \
\
mvn clean compile exec:java
IDE :
Classe principale : fr.eaudeparis.syncremocra.App
Exemple d'arguments :
-Dedp.database.serverName=localhost
Exemple pour Visual Studio Code .vscode/launch.json :
{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Job tests",
"request": "launch",
"mainClass": "fr.eaudeparis.syncremocra.App",
"projectName": "syncremocra-app",
"vmArgs": "-Dedp.database.serverName=localhost"
"args": "-c=path/to/dev.conf -l=path/to/log4j2-dev.conf job-test-all"
}
]
}
Le code java de ce projet se conforme au Google's code styleguide.
Le plugin maven spotless
traite cet aspect :
# Vérification du formatage
mvn spotless:check
# Application du formatage (à faire avant tout commit)
mvn spotless:apply
Des formateurs spécifiques existent pour Eclipse et IntelliJ.
On automatise l'utilisation de google-java-format à la sauvegarde des fichiers.
Installation du plugin emeraldwalk/vscode-runonsave :
code --install-extension emeraldwalk.RunOnSave
Puis on configure la commande dans le fichier .vscode/settings.json :
{
"java.configuration.updateBuildConfiguration": "automatic",
"emeraldwalk.runonsave": {
"commands": [
{
"match": "\\.java$",
"cmd": "app/java-format.sh ${file}"
},
],
}
}
La génération du modèle Jooq et l'application des migrations sont expliquées dans le fichier db/README.md.
Les manuels d'installation, de mise à jour et d'exploitation sont maintenus avec le code source dans le projet doc
.
Cf. pdi/README.md.
Les pipelines sont décrits dans le fichier jenkins/README.md.
Pour tester l'application dans une box Vagrant, se référer au fichier vagrant/README.md.
La distribution est expliquée dans le fichier dist/README.md. En particulier, cette documentation décrit le process de mise à jour d'un serveur.