Cette application a été générée à l'aide de JHipster 8.7.3, vous pouvez trouver de la documentation et de l'aide sur https://www.jhipster.tech/documentation-archive/v8.7.3.
Le nœud est requis pour la génération et recommandé pour le développement. package.json
est toujours généré pour une meilleure expérience de développement avec des hooks de validation, des scripts, etc. plus jolis.
À la racine du projet, JHipster génère des fichiers de configuration pour des outils comme git, plus joli, eslint, husky et d'autres qui sont bien connus et vous pouvez trouver des références sur le Web.
La structure /src/*
suit la structure Java par défaut.
.yo-rc.json
- La configuration du fichier de configuration Yeoman JHipster est stockée dans ce fichier sur la clé generator-jhipster
. Vous pouvez trouver generator-jhipster-*
pour une configuration de plans spécifiques.
.yo-resolve
(facultatif) - Résolveur de conflits Yeoman Permet d'utiliser une action spécifique lorsque des conflits sont détectés en ignorant les invites pour les fichiers qui correspondent à un modèle. Chaque ligne doit correspondre à [pattern] [action]
, le modèle étant un modèle Minimatch et l'action étant un saut (par défaut en cas d'omission) ou une force. Les lignes commençant par #
sont considérées comme des commentaires et sont ignorées.
.jhipster/*.json
- Fichiers de configuration d'entité JHipster
npmw
- wrapper pour utiliser npm installé localement. JHipster installe Node et npm localement à l'aide de l'outil de construction par défaut. Ce wrapper garantit que npm est installé localement et l'utilise en évitant certaines différences que différentes versions peuvent provoquer. En utilisant ./npmw
au lieu du npm
traditionnel, vous pouvez configurer un environnement sans nœud pour développer ou tester votre application.
/src/main/docker
- Configurations Docker pour l'application et les services dont dépend l'application
Le système de build installera automatiquement la version recommandée de Node et npm.
Nous fournissons un wrapper pour lancer npm. Vous n'aurez besoin d'exécuter cette commande que lorsque les dépendances changeront dans package.json.
./npmw install
Nous utilisons des scripts npm et Angular CLI avec Webpack comme système de construction.
Exécutez les commandes suivantes dans deux terminaux distincts pour créer une expérience de développement agréable dans laquelle votre navigateur s'actualise automatiquement lorsque les fichiers changent sur votre disque dur.
./mvnw
./npmw start
Npm est également utilisé pour gérer les dépendances CSS et JavaScript utilisées dans cette application. Vous pouvez mettre à niveau les dépendances en spécifiant une version plus récente dans package.json. Vous pouvez également exécuter ./npmw update
et ./npmw install
pour gérer les dépendances. Ajoutez l'indicateur help
sur n'importe quelle commande pour voir comment vous pouvez l'utiliser. Par exemple, ./npmw help update
.
La commande ./npmw run
répertoriera tous les scripts disponibles à exécuter pour ce projet.
JHipster est livré avec le support PWA (Progressive Web App) et il est désactivé par défaut. L’un des principaux composants d’une PWA est un service worker.
Le code d'initialisation du service worker est désactivé par défaut. Pour l'activer, décommentez le code suivant dans src/main/webapp/app/app.config.ts
:
ServiceWorkerModule . register ( 'ngsw-worker.js' , { enabled : false } ) ,
Par exemple, pour ajouter la bibliothèque Leaflet en tant que dépendance d'exécution de votre application, vous exécuterez la commande suivante :
./npmw install --save --save-exact leaflet
Pour bénéficier des définitions de type TypeScript du référentiel DefinitelyTyped en développement, vous devez exécuter la commande suivante :
./npmw install --save-dev --save-exact @types/leaflet
Ensuite, vous importerez les fichiers JS et CSS spécifiés dans les instructions d'installation de la bibliothèque afin que Webpack les connaisse : Modifiez le fichier src/main/webapp/app/app.config.ts :
import 'leaflet/dist/leaflet.js';
Modifiez le fichier src/main/webapp/content/scss/vendor.scss :
@import 'leaflet/dist/leaflet.css';
Remarque : Il reste encore quelques autres choses à faire pour Leaflet que nous ne détaillerons pas ici.
Pour plus d'instructions sur la façon de développer avec JHipster, consultez Utilisation de JHipster en développement.
Vous pouvez également utiliser Angular CLI pour générer du code client personnalisé.
Par exemple, la commande suivante :
ng generate component my-component
générera quelques fichiers :
create src/main/webapp/app/my-component/my-component.component.html
create src/main/webapp/app/my-component/my-component.component.ts
update src/main/webapp/app/app.config.ts
Pour créer le fichier jar final et optimiser l'application jhipsterSampleApplication pour la production, exécutez :
./mvnw -Pprod clean verify
Cela concatènera et réduira les fichiers CSS et JavaScript du client. Il modifiera également index.html
afin qu'il référence ces nouveaux fichiers. Pour vous assurer que tout a fonctionné, exécutez :
java -jar target/*.jar
Accédez ensuite à http://localhost:8080 dans votre navigateur.
Reportez-vous à Utilisation de JHipster en production pour plus de détails.
Pour packager votre application sous forme de guerre afin de la déployer sur un serveur d'applications, exécutez :
./mvnw -Pprod,war clean verify
JHipster Control Center peut vous aider à gérer et contrôler vos applications. Vous pouvez démarrer un serveur de centre de contrôle local (accessible sur http://localhost:7419) avec :
docker compose -f src/main/docker/jhipster-control-center.yml up
Pour lancer les tests de votre application, exécutez :
./mvnw verify
Les tests de performances sont exécutés par Gatling et écrits en Scala. Ils se trouvent dans src/test/java/gatling/simulations.
Vous pouvez exécuter tous les tests Gatling avec
./mvnw gatling:test
Les tests unitaires sont exécutés par Jest. Ils se trouvent dans src/test/javascript/ et peuvent être exécutés avec :
./npmw test
Les tests de bout en bout de l’interface utilisateur sont optimisés par Cypress. Ils se trouvent dans src/test/javascript/cypress et peuvent être exécutés en démarrant Spring Boot dans un terminal ( ./mvnw spring-boot:run
) et en exécutant les tests ( ./npmw run e2e
) dans un second.
Vous pouvez exécuter des audits Lighthouse automatisés avec cypress-audit en exécutant ./npmw run e2e:cypress:audits
. Vous ne devez exécuter les audits que lorsque votre application est packagée avec le profil de production. Le rapport du phare est créé dans target/cypress/lhreport.html
Le sonar est utilisé pour analyser la qualité du code. Vous pouvez démarrer un serveur Sonar local (accessible sur http://localhost:9001) avec :
docker compose -f src/main/docker/sonar.yml up -d
Remarque : nous avons désactivé la redirection d'authentification forcée pour l'interface utilisateur dans src/main/docker/sonar.yml pour une expérience prête à l'emploi lors de l'essai de SonarQube, pour des cas d'utilisation réels, réactivez-le.
Vous pouvez exécuter une analyse Sonar en utilisant le scanner sonar ou en utilisant le plugin maven.
Ensuite, lancez une analyse Sonar :
./mvnw -Pprod clean verify sonar:sonar -Dsonar.login=admin -Dsonar.password=admin
Si vous devez réexécuter la phase Sonar, assurez-vous de spécifier au moins la phase initialize
puisque les propriétés Sonar sont chargées à partir du fichier sonar-project.properties.
./mvnw initialize sonar:sonar -Dsonar.login=admin -Dsonar.password=admin
De plus, au lieu de transmettre sonar.password
et sonar.login
comme arguments CLI, ces paramètres peuvent être configurés à partir de sonar-project.properties comme indiqué ci-dessous :
sonar.login=admin
sonar.password=admin
Pour plus d’informations, reportez-vous à la page Qualité du code.
JHipster génère un certain nombre de fichiers de configuration Docker Compose dans le dossier src/main/docker/ pour lancer les services tiers requis.
Par exemple, pour démarrer les services requis dans les conteneurs Docker, exécutez :
docker compose -f src/main/docker/services.yml up -d
Pour arrêter et supprimer les conteneurs, exécutez :
docker compose -f src/main/docker/services.yml down
L'intégration Spring Docker Compose est activée par défaut. Il est possible de le désactiver dans application.yml :
spring :
...
docker :
compose :
enabled : false
Vous pouvez également dockeriser entièrement votre application et tous les services dont elle dépend. Pour y parvenir, créez d'abord une image Docker de votre application en exécutant :
npm run java:docker
Ou créez une image Docker arm64 lorsque vous utilisez un système d'exploitation à processeur arm64 comme MacOS avec la famille de processeurs M1 en cours d'exécution :
npm run java:docker:arm64
Puis exécutez :
docker compose -f src/main/docker/app.yml up -d
Pour plus d'informations reportez-vous à Utilisation de Docker et Docker-Compose, cette page contient également des informations sur le sous-générateur Docker Compose ( jhipster docker-compose
), qui est capable de générer des configurations Docker pour une ou plusieurs applications JHipster.
Pour configurer CI pour votre projet, exécutez le sous-générateur ci-cd ( jhipster ci-cd
), cela vous permettra de générer des fichiers de configuration pour un certain nombre de systèmes d'intégration continue. Consultez la page Configuration de l'intégration continue pour plus d'informations.