该应用程序是使用 JHipster 8.7.3 生成的,您可以在 https://www.jhipster.tech/documentation-archive/v8.7.3 找到文档和帮助。
Node是生成所必需的,推荐用于开发。始终生成package.json
以便通过 Prettier、提交挂钩、脚本等获得更好的开发体验。
在项目根目录中,JHipster 为 git、prettier、eslint、husky 等工具生成配置文件,您可以在网络中找到参考。
/src/*
结构遵循默认的 Java 结构。
.yo-rc.json
- Yeoman 配置文件 JHipster 配置存储在此文件中的generator-jhipster
key 处。您可能会找到特定蓝图配置的generator-jhipster-*
。
.yo-resolve
(可选)- Yeoman 冲突解决程序 允许在发现冲突时使用特定操作,跳过与模式匹配的文件的提示。每行应该匹配[pattern] [action]
其中模式是 Minimatch 模式,而操作是跳过(如果省略则默认)或强制之一。以#
开头的行被视为注释并被忽略。
.jhipster/*.json
- JHipster 实体配置文件
npmw
- 使用本地安装的 npm 的包装器。 JHipster 默认使用构建工具在本地安装 Node 和 npm。这个包装器确保 npm 在本地安装并使用它,避免不同版本可能导致的一些差异。通过使用./npmw
而不是传统的npm
您可以配置无节点环境来开发或测试您的应用程序。
/src/main/docker
- 应用程序和应用程序所依赖的服务的 Docker 配置
构建系统将自动安装推荐版本的 Node 和 npm。
我们提供了一个包装器来启动 npm。仅当 package.json 中的依赖项发生更改时,您才需要运行此命令。
./npmw install
我们使用 npm 脚本和 Angular CLI 以及 Webpack 作为我们的构建系统。
在两个单独的终端中运行以下命令,以创建幸福的开发体验,当硬盘上的文件发生更改时,浏览器会自动刷新。
./mvnw
./npmw start
Npm 还用于管理此应用程序中使用的 CSS 和 JavaScript 依赖项。您可以通过在 package.json 中指定较新版本来升级依赖项。您还可以运行./npmw update
和./npmw install
来管理依赖项。在任何命令上添加help
标志以了解如何使用它。例如, ./npmw help update
。
./npmw run
命令将列出可用于该项目运行的所有脚本。
JHipster 附带 PWA(渐进式 Web 应用程序)支持,并且默认情况下处于关闭状态。 PWA 的主要组件之一是 Service Worker。
默认情况下禁用 Service Worker 初始化代码。要启用它,请在src/main/webapp/app/app.config.ts
中取消注释以下代码:
ServiceWorkerModule . register ( 'ngsw-worker.js' , { enabled : false } ) ,
例如,要将 Leaflet 库添加为应用程序的运行时依赖项,您可以运行以下命令:
./npmw install --save --save-exact leaflet
要从开发中的 DefinelyTyped 存储库中的 TypeScript 类型定义中受益,您可以运行以下命令:
./npmw install --save-dev --save-exact @types/leaflet
然后,您将导入库安装说明中指定的 JS 和 CSS 文件,以便 Webpack 了解它们:编辑 src/main/webapp/app/app.config.ts 文件:
import 'leaflet/dist/leaflet.js';
编辑 src/main/webapp/content/scss/vendor.scss 文件:
@import 'leaflet/dist/leaflet.css';
注意:Leaflet 还需要做一些其他事情,我们在此不做详细介绍。
有关如何使用 JHipster 进行开发的更多说明,请查看在开发中使用 JHipster。
您还可以使用 Angular CLI 生成一些自定义客户端代码。
例如,以下命令:
ng generate component my-component
将生成几个文件:
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
要构建最终的 jar 并优化 jhipsterSampleApplication 应用程序以进行生产,请运行:
./mvnw -Pprod clean verify
这将连接并缩小客户端 CSS 和 JavaScript 文件。它还将修改index.html
以便引用这些新文件。为了确保一切正常,请运行:
java -jar target/*.jar
然后在浏览器中导航到 http://localhost:8080。
有关更多详细信息,请参阅在生产中使用 JHipster。
要将应用程序打包为 war 以便将其部署到应用程序服务器,请运行:
./mvnw -Pprod,war clean verify
JHipster Control Center 可以帮助您管理和控制您的应用程序。您可以使用以下命令启动本地控制中心服务器(可通过 http://localhost:7419 访问):
docker compose -f src/main/docker/jhipster-control-center.yml up
要启动应用程序的测试,请运行:
./mvnw verify
性能测试由 Gattle 运行并用 Scala 编写。它们位于 src/test/java/gadling/simulations 中。
您可以执行所有加特林测试
./mvnw gatling:test
单元测试由 Jest 运行。它们位于 src/test/javascript/ 中,可以使用以下命令运行:
./npmw test
UI 端到端测试由 Cypress 提供支持。它们位于 src/test/javascript/cypress 中,可以通过在一个终端 ( ./mvnw spring-boot:run
) 中启动 Spring Boot 并在第二个终端中运行测试 ( ./npmw run e2e
) 来运行。
您可以通过运行./npmw run e2e:cypress:audits
使用 cypress-audit 执行自动 Lighthouse 审核。您应该仅在您的应用程序与生产配置文件打包时运行审核。灯塔报告在target/cypress/lhreport.html
中创建
声纳用于分析代码质量。您可以使用以下命令启动本地 Sonar 服务器(可通过 http://localhost:9001 访问):
docker compose -f src/main/docker/sonar.yml up -d
注意:我们在尝试 SonarQube 时关闭了 src/main/docker/sonar.yml 中 UI 的强制身份验证重定向,以获得开箱即用的体验,对于实际用例,请重新打开它。
您可以使用声纳扫描仪或使用 Maven 插件来运行声纳分析。
然后,运行声纳分析:
./mvnw -Pprod clean verify sonar:sonar -Dsonar.login=admin -Dsonar.password=admin
如果您需要重新运行 Sonar 阶段,请确保至少指定initialize
阶段,因为 Sonar 属性是从 sonar-project.properties 文件加载的。
./mvnw initialize sonar:sonar -Dsonar.login=admin -Dsonar.password=admin
此外,可以从 sonar-project.properties 配置这些参数,而不是将sonar.password
和sonar.login
作为 CLI 参数传递,如下所示:
sonar.login=admin
sonar.password=admin
有关更多信息,请参阅代码质量页面。
JHipster 在 src/main/docker/ 文件夹中生成许多 Docker Compose 配置文件来启动所需的第三方服务。
例如,要在 Docker 容器中启动所需的服务,请运行:
docker compose -f src/main/docker/services.yml up -d
要停止并删除容器,请运行:
docker compose -f src/main/docker/services.yml down
Spring Docker Compose 集成默认启用。可以在 application.yml 中禁用它:
spring :
...
docker :
compose :
enabled : false
您还可以完全 Docker 化您的应用程序及其依赖的所有服务。为此,首先通过运行以下命令构建应用程序的 Docker 映像:
npm run java:docker
或者在使用arm64处理器操作系统(例如运行M1处理器系列的MacOS)时构建arm64 Docker映像:
npm run java:docker:arm64
然后运行:
docker compose -f src/main/docker/app.yml up -d
有关更多信息,请参阅使用 Docker 和 Docker-Compose,此页面还包含有关 Docker Compose 子生成器 ( jhipster docker-compose
) 的信息,该子生成器能够为一个或多个 JHipster 应用程序生成 Docker 配置。
要为您的项目配置 CI,请运行 ci-cd 子生成器 ( jhipster ci-cd
),这将允许您为许多持续集成系统生成配置文件。有关更多信息,请参阅设置持续集成页面。