文章目录
1.什么是JDL
JDL是JHipster特定的领域语言,您可以在一个文件(或多个文件)中,使用简单易用的语法描述所有应用程序、部署、实体及其关系。
您可以使用我们的在线工具 JDL-Studio 或 JHipster IDE 相应的插件或扩展:
JDL是JHipster特定的领域语言。通过特定的JDL语法来创建JDL文件,通过jhipster jdl 文件名
指令来告诉JHipster应该如何创建项目、如何部署、如何定义实体与关系等。
可以在JHipster官网提供的在线工具JDL-Studio中编写JDL,并创建JDL文件。
2.简单上手 - 编写JDL文件,并通过jhipster创建单体项目
2.1.编写、下载、上传并执行JDL文件
打开JDL-Studio,清空当前编辑器的内容,并重新输入:
application {
config {
// 应用名
baseName app1
// 包名
packageName com.test.app1
// 应用类型
applicationType monolith
// 端口号
serverPort 8080
}
}
随后创建项目的空目录,在服务器已配置好JHipster依赖环境的前提下,将下载好的JDL文件上传到目录中

使用 XShell 连接服务器,切换操作路径到项目目录下,并通过jhipster jdl 文件名
执行JDL文件:
# 进入到项目目录
cd /jhipster-project/test-jdl-monolith
# 执行JDL文件
jhipster jdl jhipster-jdl.jdl
根据JDL文件的内容,jhipster会在当前目录下,创建一个项目名为app1、包名为com.test.app1、端口号为8080的单体(monolith)应用;
值得一提的是,JDL语法允许同时创建多个项目,比如:
// 第一个应用
application {
config {
// 应用名
baseName app1
// 包名
packageName com.test.app1
// 应用类型
applicationType monolith
// 端口号
serverPort 8081
}
}
// 第二个应用
application {
config {
// 应用名
baseName app2
// 包名
packageName com.test.app2
// 应用类型
applicationType monolith
// 端口号
serverPort 8082
}
}
这样在使用jhipster jdl 文件名
指令时,会在目录中分别创建app1和app2两个目录,并在相应的目录中创建项目。
3.进阶使用 - 编写JDL文件,并通过jhipster搭建微服务
需要注意,jhipster只能创建 网关项目(gateway)和 微服务项目micro,注册中心需要自行去github下载:
git clone https://github.com/jhipster/jhipster-registry
3.1.可用的应用程序配置选项
所有可用的配置选项如下,其中标红内容表示本文与官方文档不同的地方
JDL选项名称 | 默认值 | 可选值 | 说明 |
---|---|---|---|
applicationType | monolith | monolith, microservice, gateway | 项目类型 |
authenticationType | jwt | jwt, session, oauth2 | 权限校验方式 |
baseName | jhipster | ||
blueprint | Name of an additional blueprint (see Marketplace) | 已过时,字符型 | |
blueprints | 其他方案(Blueprint)的名称 (可查看 方案和模块市场) | ||
buildTool | maven | maven, gradle | 项目构建工具 |
cacheProvider | ehcache or hazelcast | caffeine, ehcache, hazelcast, infinispan, memcached, redis, no | ehcache用于单体和网关的,否则为hazelcast |
clientFramework | angularX | vue, angularX, react | 前端框架 |
clientPackageManager | npm | npm, yarn | |
clientTheme | none | Something or none | 您可以输入所需的任何值,前提是您知道它会起作用(例如Yeti)。 |
clientThemeVariant | Something or primary | 您可以输入所需的任何值,前提是您知道它会起作用(例如深色或浅色),也可以为空 | |
databaseType | sql | sql, mongodb, cassandra, couchbase, no | |
devDatabaseType | h2Disk | mysql, h2Disk, h2Memory, * | 生产环境数据库类型 |
dtoSuffix | DTO | DTO的后缀。 如果为空字符串,则为false。 | |
enableHibernateCache | true | 是否开启Hibernate缓存 | |
enableSwaggerCodegen | false | ||
enableTranslation | true | ||
entitySuffix | 实体的后缀。 如果为空字符串,则为false。 | ||
jhiPrefix | jhi | ||
languages | [en, fr] | Languages available in JHipster | 中括号必须有 |
messageBroker | false | kafka, false | |
nativeLanguage | en | JHipster支持的任何语言 | 项目默认语言。简体中文是zh-cn |
packageName | com.mycompany.myapp | 包名 | |
prodDatabaseType | mysql | mysql, mariadb, mssql, postgresql, oracle, no | 生产环境数据库类型 |
reactive | false | ||
searchEngine | false | elasticsearch, false | |
serverPort | 8080, 8081 or 9999 | 端口号 | |
serviceDiscoveryType | false | eureka, consul, no | |
skipClient | false | ||
skipServer | false | ||
skipUserManagement | false | ||
testFrameworks | [] | cypress, protractor, cucumber, gatling | 中括号必须有 |
websocket | false | spring-websocket, false |
3.2.编写、下载、上传并执行JDL文件
根据本文 3.1.可用的应用程序配置选项,分别创建 网关项目gateway 和 微服务项目micro (二者采用的配置几乎一致):
// 网关应用
application {
config {
// 应用名
baseName gateway
// 包名
packageName tech.jhipster.test_jdl_gateway
// 应用类型
applicationType gateway
// 权限校验方式
authenticationType jwt
// 项目构建工具
buildTool maven
// 缓存类型
cacheProvider no
// 前端框架
clientFramework vue
// 包管理器
clientPackageManager npm
// 数据库类型
databaseType sql
// 开发环境数据库类型
devDatabaseType mysql
// 生产环境数据库类型
prodDatabaseType mysql
// 端口号
serverPort 8080
// 语言
nativeLanguage zh-cn
// 其他语言
languages [en]
}
}
// 微服务应用
application {
config {
// 应用名
baseName micro
// 包名
packageName tech.jhipster.test_jdl_micro
// 应用类型
applicationType microservice
// 权限校验方式
authenticationType jwt
// 项目构建工具
buildTool maven
// 缓存类型
cacheProvider no
// 前端框架
clientFramework vue
// 包管理器
clientPackageManager npm
// 数据库类型
databaseType sql
// 开发环境数据库类型
devDatabaseType mysql
// 生产环境数据库类型
prodDatabaseType mysql
// 端口号
serverPort 8081
// 语言
nativeLanguage zh-cn
// 其他语言
languages [en]
}
}
随后创建一个空目录,在服务器已配置好JHipster依赖环境的前提下,将下载好的JDL文件上传到目录中

使用 XShell 连接服务器,切换操作路径到项目目录下,并通过jhipster jdl 文件名
执行JDL文件:
# 进入到项目目录
cd /jhipster-project/test-jdl-microservice
# 执行JDL文件
jhipster jdl jhipster-jdl.jdl
同样的,等待项目创建完毕即可。
**特别注意,启动前需要分别修改它们项目的数据库配置,详见 **JHipster | 01.JHipster创建项目及部署说明 的 2.2.配置项目