Diese Anwendung wurde mit JHipster 8.7.3 generiert. Dokumentation und Hilfe finden Sie unter https://www.jhipster.tech/documentation-archive/v8.7.3.
Der Knoten ist für die Generierung erforderlich und wird für die Entwicklung empfohlen. package.json
wird immer generiert, um eine bessere Entwicklungserfahrung mit Prettier, Commit-Hooks, Skripten usw. zu ermöglichen.
Im Projektstamm generiert JHipster Konfigurationsdateien für Tools wie Git, Prettier, Eslint, Husky und andere, die bekannt sind und auf die Sie im Internet verweisen können.
/src/*
-Struktur folgt der Standard-Java-Struktur.
.yo-rc.json
– Die JHipster-Konfiguration der Yeoman-Konfigurationsdatei wird in dieser Datei unter dem Schlüssel generator-jhipster
gespeichert. Möglicherweise finden Sie generator-jhipster-*
für die spezifische Blueprint-Konfiguration.
.yo-resolve
(optional) – Yeoman-Konfliktlöser Ermöglicht die Verwendung einer bestimmten Aktion, wenn Konflikte gefunden werden, und überspringt Eingabeaufforderungen für Dateien, die einem Muster entsprechen. Jede Zeile sollte mit [pattern] [action]
übereinstimmen, wobei das Muster ein Minimatch-Muster und die Aktion entweder „Überspringen“ (Standard, wenn weggelassen) oder „Erzwingen“ ist. Zeilen, die mit #
beginnen, gelten als Kommentare und werden ignoriert.
.jhipster/*.json
– JHipster-Entitätskonfigurationsdateien
npmw
– Wrapper zur Verwendung lokal installierter npm. JHipster installiert Node und npm standardmäßig lokal mit dem Build-Tool. Dieser Wrapper stellt sicher, dass npm lokal installiert ist und verwendet es, um einige Unterschiede zu vermeiden, die verschiedene Versionen verursachen können. Durch die Verwendung von ./npmw
anstelle des herkömmlichen npm
können Sie eine knotenlose Umgebung zum Entwickeln oder Testen Ihrer Anwendung konfigurieren.
/src/main/docker
– Docker-Konfigurationen für die Anwendung und Dienste, von denen die Anwendung abhängt
Das Build-System installiert automatisch die empfohlene Version von Node und npm.
Wir stellen einen Wrapper zum Starten von npm bereit. Sie müssen diesen Befehl nur ausführen, wenn sich Abhängigkeiten in package.json ändern.
./npmw install
Wir verwenden npm-Skripte und Angular CLI mit Webpack als Build-System.
Führen Sie die folgenden Befehle in zwei separaten Terminals aus, um ein angenehmes Entwicklungserlebnis zu schaffen, bei dem Ihr Browser automatisch aktualisiert wird, wenn sich Dateien auf Ihrer Festplatte ändern.
./mvnw
./npmw start
Npm wird auch zum Verwalten der in dieser Anwendung verwendeten CSS- und JavaScript-Abhängigkeiten verwendet. Sie können Abhängigkeiten aktualisieren, indem Sie in package.json eine neuere Version angeben. Sie können auch ./npmw update
und ./npmw install
ausführen, um Abhängigkeiten zu verwalten. Fügen Sie das help
Flag zu jedem Befehl hinzu, um zu sehen, wie Sie es verwenden können. Beispiel: ./npmw help update
.
Der Befehl ./npmw run
listet alle Skripts auf, die für dieses Projekt ausgeführt werden können.
JHipster wird mit PWA-Unterstützung (Progressive Web App) ausgeliefert und ist standardmäßig deaktiviert. Eine der Hauptkomponenten einer PWA ist ein Servicemitarbeiter.
Der Service-Worker-Initialisierungscode ist standardmäßig deaktiviert. Um es zu aktivieren, kommentieren Sie den folgenden Code in src/main/webapp/app/app.config.ts
aus:
ServiceWorkerModule . register ( 'ngsw-worker.js' , { enabled : false } ) ,
Um beispielsweise die Leaflet-Bibliothek als Laufzeitabhängigkeit Ihrer Anwendung hinzuzufügen, würden Sie den folgenden Befehl ausführen:
./npmw install --save --save-exact leaflet
Um von TypeScript-Typdefinitionen aus dem DefinitelyTyped-Repository in der Entwicklung zu profitieren, würden Sie den folgenden Befehl ausführen:
./npmw install --save-dev --save-exact @types/leaflet
Dann würden Sie die in den Installationsanweisungen der Bibliothek angegebenen JS- und CSS-Dateien importieren, damit Webpack davon weiß: Bearbeiten Sie die Datei src/main/webapp/app/app.config.ts:
import 'leaflet/dist/leaflet.js';
Bearbeiten Sie die Datei src/main/webapp/content/scss/vendor.scss:
@import 'leaflet/dist/leaflet.css';
Hinweis: Für Leaflet müssen noch einige andere Dinge erledigt werden, auf die wir hier nicht näher eingehen.
Weitere Anweisungen zur Entwicklung mit JHipster finden Sie unter Verwendung von JHipster in der Entwicklung.
Sie können Angular CLI auch verwenden, um benutzerdefinierten Clientcode zu generieren.
Zum Beispiel der folgende Befehl:
ng generate component my-component
wird einige Dateien generieren:
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
Führen Sie Folgendes aus, um das endgültige JAR zu erstellen und die jhipsterSampleApplication-Anwendung für die Produktion zu optimieren:
./mvnw -Pprod clean verify
Dadurch werden die Client-CSS- und JavaScript-Dateien verkettet und minimiert. Außerdem wird index.html
so geändert, dass es auf diese neuen Dateien verweist. Um sicherzustellen, dass alles funktioniert, führen Sie Folgendes aus:
java -jar target/*.jar
Navigieren Sie dann in Ihrem Browser zu http://localhost:8080.
Weitere Einzelheiten finden Sie unter JHipster in der Produktion verwenden.
Führen Sie Folgendes aus, um Ihre Anwendung als War zu verpacken und auf einem Anwendungsserver bereitzustellen:
./mvnw -Pprod,war clean verify
Das JHipster Control Center kann Ihnen bei der Verwaltung und Kontrolle Ihrer Anwendung(en) helfen. Sie können einen lokalen Kontrollzentrumsserver starten (zugänglich unter http://localhost:7419) mit:
docker compose -f src/main/docker/jhipster-control-center.yml up
Führen Sie Folgendes aus, um die Tests Ihrer Anwendung zu starten:
./mvnw verify
Leistungstests werden von Gatling durchgeführt und in Scala geschrieben. Sie befinden sich in src/test/java/gatling/simulations.
Sie können alle Gatling-Tests mit durchführen
./mvnw gatling:test
Unit-Tests werden von Jest durchgeführt. Sie befinden sich in src/test/javascript/ und können ausgeführt werden mit:
./npmw test
UI-End-to-End-Tests werden von Cypress unterstützt. Sie befinden sich in src/test/javascript/cypress und können ausgeführt werden, indem Sie Spring Boot in einem Terminal starten ( ./mvnw spring-boot:run
) und die Tests ( ./npmw run e2e
) in einem zweiten ausführen.
Sie können automatisierte Lighthouse-Audits mit cypress-audit durchführen, indem Sie ./npmw run e2e:cypress:audits
ausführen. Sie sollten die Audits nur ausführen, wenn Ihre Anwendung mit dem Produktionsprofil gepackt ist. Der Leuchtturmbericht wird in target/cypress/lhreport.html
erstellt
Sonar wird zur Analyse der Codequalität verwendet. Sie können einen lokalen Sonar-Server starten (zugänglich unter http://localhost:9001) mit:
docker compose -f src/main/docker/sonar.yml up -d
Hinweis: Wir haben die erzwungene Authentifizierungsumleitung für die Benutzeroberfläche in src/main/docker/sonar.yml für ein sofort einsatzbereites Erlebnis beim Ausprobieren von SonarQube deaktiviert. Für echte Anwendungsfälle schalten Sie sie wieder ein.
Sie können eine Sonar-Analyse mit dem Sonar-Scanner oder mit dem Maven-Plugin durchführen.
Führen Sie dann eine Sonar-Analyse durch:
./mvnw -Pprod clean verify sonar:sonar -Dsonar.login=admin -Dsonar.password=admin
Wenn Sie die Sonar-Phase erneut ausführen müssen, stellen Sie bitte sicher, dass Sie mindestens die initialize
angeben, da Sonar-Eigenschaften aus der Datei sonar-project.properties geladen werden.
./mvnw initialize sonar:sonar -Dsonar.login=admin -Dsonar.password=admin
Anstatt sonar.password
und sonar.login
als CLI-Argumente zu übergeben, können diese Parameter außerdem wie unten gezeigt über sonar-project.properties konfiguriert werden:
sonar.login=admin
sonar.password=admin
Weitere Informationen finden Sie auf der Seite Codequalität.
JHipster generiert eine Reihe von Docker Compose-Konfigurationsdateien im Ordner src/main/docker/, um erforderliche Dienste von Drittanbietern zu starten.
Um beispielsweise erforderliche Dienste in Docker-Containern zu starten, führen Sie Folgendes aus:
docker compose -f src/main/docker/services.yml up -d
Um die Container anzuhalten und zu entfernen, führen Sie Folgendes aus:
docker compose -f src/main/docker/services.yml down
Die Spring Docker Compose-Integration ist standardmäßig aktiviert. Es ist möglich, es in application.yml zu deaktivieren:
spring :
...
docker :
compose :
enabled : false
Sie können Ihre Anwendung und alle Dienste, von denen sie abhängt, auch vollständig dockerisieren. Um dies zu erreichen, erstellen Sie zunächst ein Docker-Image Ihrer App, indem Sie Folgendes ausführen:
npm run java:docker
Oder erstellen Sie ein arm64-Docker-Image, wenn Sie ein arm64-Prozessor-Betriebssystem wie MacOS mit laufender M1-Prozessorfamilie verwenden:
npm run java:docker:arm64
Führen Sie dann Folgendes aus:
docker compose -f src/main/docker/app.yml up -d
Weitere Informationen finden Sie unter Docker und Docker-Compose verwenden. Diese Seite enthält auch Informationen zum Docker Compose-Subgenerator ( jhipster docker-compose
), der Docker-Konfigurationen für eine oder mehrere JHipster-Anwendungen generieren kann.
Um CI für Ihr Projekt zu konfigurieren, führen Sie den ci-cd-Subgenerator ( jhipster ci-cd
) aus. Dadurch können Sie Konfigurationsdateien für eine Reihe von Continuous-Integration-Systemen generieren. Weitere Informationen finden Sie auf der Seite „Continuous Integration einrichten“.