JHipster | 02.编写JDL文件创建JHipster项目

本文详细介绍了JHipster领域的特定语言JDL,包括如何编写、下载、上传和执行JDL文件来创建单体和微服务项目。通过JDL,可以设置应用配置如应用类型、权限校验、数据库类型等,并通过JHipster生成相应项目结构。此外,还提供了JDL的配置选项和示例,帮助开发者更高效地搭建JHipster应用。
摘要由CSDN通过智能技术生成

1.什么是JDL

JDL是JHipster特定的领域语言,您可以在一个文件(或多个文件)中,使用简单易用的语法描述所有应用程序、部署、实体及其关系。

您可以使用我们的在线工具 JDL-StudioJHipster IDE 相应的插件或扩展:

JDL是JHipster特定的领域语言。通过特定的JDL语法来创建JDL文件,通过jhipster jdl 文件名指令来告诉JHipster应该如何创建项目、如何部署、如何定义实体与关系等。

可以在JHipster官网提供的在线工具JDL-Studio中编写JDL,并创建JDL文件。

2.简单上手 - 编写JDL文件,并通过jhipster创建单体项目

2.1.编写、下载、上传并执行JDL文件

JHipster领域语言 (JDL) - 应用程序配置

JDL-Studio

打开JDL-Studio,清空当前编辑器的内容,并重新输入:

application {
    config {
        // 应用名
        baseName app1
        // 包名
        packageName com.test.app1
        // 应用类型
        applicationType monolith
        // 端口号
        serverPort 8080
    }
}

image-20220506171929776

随后创建项目的空目录,在服务器已配置好JHipster依赖环境的前提下,将下载好的JDL文件上传到目录中

image-20220506172325593

使用 XShell 连接服务器,切换操作路径到项目目录下,并通过jhipster jdl 文件名执行JDL文件:

# 进入到项目目录
cd /jhipster-project/test-jdl-monolith

# 执行JDL文件
jhipster jdl jhipster-jdl.jdl

image-20220506172924193

根据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.可用的应用程序配置选项

JHipster领域语言 (JDL) - 应用程序配置

所有可用的配置选项如下,其中标红内容表示本文与官方文档不同的地方

JDL选项名称默认值可选值说明
applicationTypemonolithmonolith, microservice, gateway项目类型
authenticationTypejwtjwt, session, oauth2权限校验方式
baseNamejhipster
blueprintName of an additional blueprint (see Marketplace)已过时,字符型
blueprints其他方案(Blueprint)的名称 (可查看 方案和模块市场)
buildToolmavenmaven, gradle项目构建工具
cacheProviderehcache or hazelcastcaffeine, ehcache, hazelcast, infinispan, memcached, redis, noehcache用于单体和网关的,否则为hazelcast
clientFrameworkangularXvue, angularX, react前端框架
clientPackageManagernpmnpm, yarn
clientThemenoneSomething or none您可以输入所需的任何值,前提是您知道它会起作用(例如Yeti)。
clientThemeVariantSomething or primary您可以输入所需的任何值,前提是您知道它会起作用(例如深色或浅色),也可以为空
databaseTypesqlsql, mongodb, cassandra, couchbase, no
devDatabaseTypeh2Diskmysql, h2Disk, h2Memory, *生产环境数据库类型
dtoSuffixDTODTO的后缀。 如果为空字符串,则为false。
enableHibernateCachetrue是否开启Hibernate缓存
enableSwaggerCodegenfalse
enableTranslationtrue
entitySuffix实体的后缀。 如果为空字符串,则为false。
jhiPrefixjhi
languages[en, fr]Languages available in JHipster中括号必须有
messageBrokerfalsekafka, false
nativeLanguageenJHipster支持的任何语言项目默认语言。简体中文是zh-cn
packageNamecom.mycompany.myapp包名
prodDatabaseTypemysqlmysql, mariadb, mssql, postgresql, oracle, no生产环境数据库类型
reactivefalse
searchEnginefalseelasticsearch, false
serverPort8080, 8081 or 9999端口号
serviceDiscoveryTypefalseeureka, consul, no
skipClientfalse
skipServerfalse
skipUserManagementfalse
testFrameworks[]cypress, protractor, cucumber, gatling中括号必须有
websocketfalsespring-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]
    }
}

image-20220506180846728

随后创建一个空目录,在服务器已配置好JHipster依赖环境的前提下,将下载好的JDL文件上传到目录中

image-20220506181044167

使用 XShell 连接服务器,切换操作路径到项目目录下,并通过jhipster jdl 文件名执行JDL文件:

# 进入到项目目录
cd /jhipster-project/test-jdl-microservice

# 执行JDL文件
jhipster jdl jhipster-jdl.jdl

同样的,等待项目创建完毕即可。

image-20220506181524098

**特别注意,启动前需要分别修改它们项目的数据库配置,详见 **JHipster | 01.JHipster创建项目及部署说明 2.2.配置项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值