首页 > 解决方案 > JHipster:Elasticsearch:.yo-rc.json 设置

问题描述

我的问题很简单:如果你想在你的 JHipster 应用程序中使用 Elasticsearch,你需要包含"serverSideOptions": ["searchEngine:elasticsearch"],.yo-rc.json配置文件中吗?

今天,我在生成 JHipster 项目时注意到一个奇怪的事情:一次使用“问答”命令行方法,第二次使用 JDL 文件。

第一关:使用“问答”

使用“问答”命令行方法,我选择在我的项目中包含 elasticsearch。项目已生成,并创建了以下.yo-rc.json配置文件(以及项目代码的其余部分):

{
  "generator-jhipster": {
    "authenticationType": "jwt",
    "cacheProvider": "ehcache",
    "clientFramework": "angularX",
    "serverPort": "8080",
    "serviceDiscoveryType": false,
    "skipUserManagement": false,
    "withAdminUi": true,
    "baseName": "myproj",
    "buildTool": "gradle",
    "databaseType": "sql",
    "devDatabaseType": "mariadb",
    "enableHibernateCache": true,
    "enableSwaggerCodegen": false,
    "enableTranslation": true,
    "jhiPrefix": "jhi",
    "languages": ["en", "es"],
    "messageBroker": false,
    "prodDatabaseType": "mariadb",
    "searchEngine": "elasticsearch",
    "serverSideOptions": ["searchEngine:elasticsearch"],
    "skipClient": false,
    "testFrameworks": ["protractor"],
    "websocket": false,
    "packageName": "com.mycompany.app",
    "packageFolder": "com/mycompany/app",
    "applicationType": "monolith",
    "clientPackageManager": "npm",
    "nativeLanguage": "en",
    "jwtSecretKey": "(it's a secret)",
    "jhipsterVersion": "7.1.0",
    "skipServer": false,
    "dtoSuffix": "DTO",
    "entitySuffix": "",
    "reactive": false,
    "clientTheme": "none",
    "clientThemeVariant": "",
    "entities": [],
    "skipCheckLengthOfIdentifier": false,
    "skipFakeData": false,
    "blueprints": [],
    "otherModules": [],
    "pages": [],
    "creationTimestamp": 1624659113018,
    "devServerPort": 4200
  }
}

第二遍:使用 JDL 文件

第二次,我创建了一个 JDL 文件 ( myproj-app.jh),如下所示:

application {
  config {
    baseName myproj,
    packageName com.mycompany.app,
    applicationType monolith,
    authenticationType jwt,
    cacheProvider ehcache,
    enableHibernateCache true,
    databaseType sql,
    devDatabaseType mariadb,
    prodDatabaseType mariadb,
    searchEngine elasticsearch,
    buildTool gradle,
    clientPackageManager npm,
    clientFramework angular,
    testFrameworks [protractor],
    nativeLanguage en,
    languages [en, es],
    jhiPrefix jhi,
    jwtSecretKey "(it's a secret)"
  }
}

然后在命令行中,我通过键入以下内容生成了应用程序:jhipster jdl myproj-app.jh

这第二次,生成的.yo-rc.json配置文件几乎与使用第一种方法(“问题和答案”)创建的配置文件相同,但是缺少一行:

   "serverSideOptions": ["searchEngine:elasticsearch"],

我的问题

.yo-rc.json配置文件"serverSideOptions": ["searchEngine:elasticsearch"],行项目重要吗?有谁知道它的作用?为什么它是使用第一种方法而不是使用 JDL 方法生成的?

我想命令行“问题和答案”方法插入它是有原因的,所以,在重新生成我的应用程序时,我一直在使用.yo-rc.json配置文件,直到我更好地理解这个serverSideOptions条目是什么,以及它为什么从 JDL 中丢失生成的配置文件。

PS:使用.yo-rc.json“问答”方法中生成的配置文件,Elasticsearch正在我的项目中工作。

[我的设置:Windows 10 Pro 21H1、IntelliJ IDEA 2021.1.2 (Build #IU-211.7442.40)、JHipster 7.1.0、Elasticsearch 7.9.3]

标签: elasticsearchjhipsterjdl

解决方案


推荐阅读