没有合适的资源?快使用搜索试试~ 我知道了~
首页JHipster Mini-Book PDF v7.0.2-1686129670176 - Matt Raible - 2023.
JHipster Mini-Book PDF v7.0.2-1686129670176 - Matt Raible - 2023...
需积分: 3 0 下载量 166 浏览量
更新于2023-11-24
收藏 14.48MB PDF 举报
《JHipster Mini-Book》是由Matt Raible于2023年5月30日发布的一个版本为7.0.2的书籍。该书由C4Media出版,C4Media是InfoQ.com的出版商。本书的版权归Matt Raible所有,未经出版社的事先书面许可,不得以任何形式或通过任何方式,包括电子、机械、复印、录音、扫描等,进行复制、存储或传输,除非根据1976年美国版权法第107或108条的规定。 本书的制作编辑是Ana Ciobotaru,副本编辑是Lawrence Nyveen和Maureen Spencer,封面和内部设计由Dragos Balasoiu负责。本书的国会图书馆编目数据为ISBN:978-1-329-63814-3。 本书的目录包括致谢、引言、第一部分、第二部分、附录和索引等内容。详细内容请参阅实际书籍。
资源详情
资源推荐
Figure 1. Generating the application
I tried using "21-points" as the application name, but quickly discovered JHipster
prevents this with a validation error: Your base name cannot contain special
characters or a blank space.
This process generates a .yo-rc.json file that captures all of the choices you make. You can use this file
in an empty directory to create a project with the same settings.
Listing 3. yo-rc.json
{
Ê "generator-jhipster": {
Ê "applicationType": "monolith",
Ê "authenticationType": "jwt",
Ê "baseName": "TwentyOnePoints",
Ê "blueprints": [],
Ê "buildTool": "gradle",
Ê "cacheProvider": "ehcache",
Ê "clientFramework": "angularX",
Building an app with JHipster
11
Ê "clientPackageManager": "npm",
Ê "clientTheme": "none",
Ê "clientThemeVariant": "",
Ê "creationTimestamp": 1662997089611,
Ê "cypressAudit": false,
Ê "cypressCoverage": false,
Ê "databaseType": "sql",
Ê "devDatabaseType": "h2Disk",
Ê "devServerPort": 4200,
Ê "dtoSuffix": "DTO",
Ê "enableGradleEnterprise": false,
Ê "enableHibernateCache": true,
Ê "enableSwaggerCodegen": false,
Ê "enableTranslation": true,
Ê "entitySuffix": "",
Ê "jhiPrefix": "jhi",
Ê "jhipsterVersion": "7.9.3",
Ê "languages": ["en", "fr"],
Ê "messageBroker": false,
Ê "microfrontend": false,
Ê "microfrontends": [],
Ê "nativeLanguage": "en",
Ê "otherModules": [],
Ê "packageName": "org.jhipster.health",
Ê "pages": [],
Ê "prodDatabaseType": "postgresql",
Ê "reactive": false,
Ê "searchEngine": "elasticsearch",
Ê "serverPort": "8080",
Ê "serverSideOptions": ["searchEngine:elasticsearch"],
Ê "serviceDiscoveryType": "no",
Ê "skipCheckLengthOfIdentifier": false,
Ê "skipClient": false,
Ê "skipFakeData": false,
Ê "skipUserManagement": false,
Ê "testFrameworks": ["cypress"],
Ê "websocket": false,
Ê "withAdminUi": true
Ê }
}
You can see that I chose H2 with disk-based persistence for development and PostgreSQL for my
production database. I did this because using a non-embedded database offers some important
benefits:
• Your data is retained when restarting the application.
The JHipster Mini-Book
12
• Your application starts a bit faster.
• You can use Liquibase to generate a database changelog.
The Liquibase homepage describes it as source control for your database. It will help create new fields
as you add them to your entities. It will also refactor your database, for example, creating tables and
dropping columns. It also can undo changes to your database, either automatically or with custom
SQL.
After answering all the questions, JHipster created a lot of files, then ran npm install. To prove
everything was good to go, I ran the Java unit tests using ./gradlew test.
BUILD SUCCESSFUL in 1m 12s
15 actionable tasks: 13 executed, 2 up-to-date
JHipster 5+ will only work with an external Elasticsearch instance. In previous versions, you could use
an embedded Elasticsearch instance, but Elasticsearch has removed this ability in recent releases. The
easiest way to run a local Elasticsearch instance is to use Docker Compose. I ran the following
command to start Elasticsearch as a daemon. Remove the -d option if you don’t want it to run as a
daemon.
docker-compose -f src/main/docker/elasticsearch.yml up -d
Next, I started the app using ./gradlew and then ran the UI integration tests in another terminal with
npm run e2e. All tests passed with flying colors.
$ npm run e2e
> twenty-one-points@0.0.1-SNAPSHOT e2e
> npm run e2e:cypress:headed --
> twenty-one-points@0.0.1-SNAPSHOT e2e:cypress:headed
> npm run e2e:cypress -- --headed
> twenty-one-points@0.0.1-SNAPSHOT e2e:cypress
> cypress run --e2e --browser chrome --record ${CYPRESS_ENABLE_RECORD:-false}
...
Ê - All specs passed!
Execution time: 41 s.
Building an app with JHipster
13
To prove the prod profile worked, and I could talk to PostgreSQL, I ran Docker Compose for PostgreSQL.
docker-compose -f src/main/docker/postgresql.yml up -d
Then I restarted the app with the prod profile enabled.
$ ./gradlew -Pprod
...
----------------------------------------------------------
Ê Application 'TwentyOnePoints' is running! Access URLs:
Ê Local: http://localhost:8080/
Ê External: http://127.0.0.1:8080/
Ê Profile(s): [prod]
----------------------------------------------------------
Wahoo—it worked!
Using a local PostgreSQL database
You can also use a local PostgreSQL database. To do this on a Mac, I installed Postgres.app. I shut
down the Docker image running PostgreSQL.
docker-compose -f src/main/docker/postgresql.yml down
Then, I tried creating a local PostgreSQL database with settings from application-prod.yml.
psql (14.5)
Type "help" for help.
template1=# create user TwentyOnePoints with password '21points';
CREATE ROLE
template1=# create database TwentyOnePoints;
CREATE DATABASE
template1=# grant all privileges on database TwentyOnePoints to TwentyOnePoints;
GRANT
template1=# \q
I updated application-prod.yml to use 21points for the datasource password.
I confirmed I could talk to a PostgreSQL database when running with the prod profile. I was
greeted with an error saying things were not set up correctly.
The JHipster Mini-Book
14
$ ./gradlew -Pprod
...
org.postgresql.util.PSQLException: FATAL: role "TwentyOnePoints" does not exist
I quickly realized that PostgreSQL is case-insensitive, so even though I typed "TwentyOnePoints",
it configured the database name and username as "twentyonepoints". I updated application-
prod.yml with the correct case and tried again. This time it worked!
Adding source control
One of the first things I like to do when creating a new project is to add it to a version-control system
(VCS). In this particular case, I chose Git and GitHub.
JHipster will initialize Git for your project automatically if you have Git installed. The following
commands show how I added a reference to the remote GitHub repository, then pushed everything. I
created the repository on GitHub before executing these commands.
git remote add origin git@github.com:mraible/21-points.git
git branch -M main
git push -u origin main
The response should indicate success:
Enumerating objects: 652, done.
Counting objects: 100% (652/652), done.
Delta compression using up to 10 threads
Compressing objects: 100% (618/618), done.
Writing objects: 100% (652/652), 952.77 KiB | 11.34 MiB/s, done.
Total 652 (delta 79), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (79/79), done.
To github.com:mraible/21-points.git
Ê* [new branch] main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.
This is how I created a new application with JHipster and checked it into source control. If you’re
creating an application following similar steps, there are two common approaches for continuing. The
first involves developing the application, then testing and deploying. The second option is to set up
continuous integration, deploy, then begin development and testing. In a team development
environment, I recommend the second option. However, since you’re likely reading this as an
individual, I’ll follow the first approach and get right to coding. If you’re interested in setting up
Building an app with JHipster
15
剩余157页未读,继续阅读
大强的博客
- 粉丝: 903
- 资源: 26
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- zlib-1.2.12压缩包解析与技术要点
- 微信小程序滑动选项卡源码模版发布
- Unity虚拟人物唇同步插件Oculus Lipsync介绍
- Nginx 1.18.0版本WinSW自动安装与管理指南
- Java Swing和JDBC实现的ATM系统源码解析
- 掌握Spark Streaming与Maven集成的分布式大数据处理
- 深入学习推荐系统:教程、案例与项目实践
- Web开发者必备的取色工具软件介绍
- C语言实现李春葆数据结构实验程序
- 超市管理系统开发:asp+SQL Server 2005实战
- Redis伪集群搭建教程与实践
- 掌握网络活动细节:Wireshark v3.6.3网络嗅探工具详解
- 全面掌握美赛:建模、分析与编程实现教程
- Java图书馆系统完整项目源码及SQL文件解析
- PCtoLCD2002软件:高效图片和字符取模转换
- Java开发的体育赛事在线购票系统源码分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功