首先,我们知道这个是配置脚本是属于yeoman体系,文件结构为json,接下来的分析都是基于yo-rc文件的api内容。这个文件存储了多个生成器的配置文件,现在以jhipster中自动生成的配置文件为例
{ ???"generator-jhipster": { ???????"promptValues": { ???????????"packageName": "xxx.yyy.zzz" ???????}, ???????"jhipsterVersion": "5.7.1", ???????"applicationType": "monolith", ???????"baseName": "zzz", ???????"packageName": "xxx.yyy.zzz", ???????"packageFolder": "xxx/yyy/zzz", ???????"serverPort": "8080", ???????"authenticationType": "jwt", ???????"cacheProvider": "ehcache", ???????"enableHibernateCache": true, ???????"websocket": false, ???????"databaseType": "sql", ???????"devDatabaseType": "mariadb", ???????"prodDatabaseType": "mariadb", ???????"searchEngine": "elasticsearch", ???????"messageBroker": false, ???????"serviceDiscoveryType": "eureka", ???????"buildTool": "gradle", ???????"enableSwaggerCodegen": false, ???????"jwtSecretKey": "YTJiY2Q3OTIyMjY3MDQ4M2I4ZGZiZjFhMGM3MjM5OTYzYmQzNzVkMWVhZTEzOTU2ZmQ5OGRkMDI0YTE1YzhmMGJlY2U4NWM3MGEzMGI4NjMxNDVhYjQyZWQ4MTMzMzc5NjlmY2NmNWRjZWU1MDQ0NGQ5MjJmNWY3YzMwY2M2MGM=", ???????"clientFramework": "angularX", ???????"useSass": true, ???????"clientPackageManager": "npm", ???????"testFrameworks": [], ???????"jhiPrefix": "jhi", ???????"otherModules": [], ???????"enableTranslation": false, ???????"skipServer": true, ????????"skipClient": true ???}}
整份json文件,可以存储来自多个生成器(generator)的配置对象,每个生成器都是有自己的命名空间的,以确保生成器之间不会发生命名冲突,不过这样也导致了不通生成器之间并不能共享配置,这个到时可能也会有坑,此时暂且不提。项目中配置对象则是"generator-jhipster": {"promptValues": {"packageName": "com.smpteam.amzradar"}
配置文件中,详细的记录我们所采用的jhipster的版本号、应用类型、包的路径、命名、开放的端口(8080)、身份校验(JWT)、依赖的数据库(mariadb)、建设仓库(gradle)等内容。
这些东西都是自动化配置生成的,一开始就很爽了,快速搭建微服务,一键生成基于Spring Boot + Angular Web的开发环境,前端后台一顿骚操作,然后再开发的过程中,不知道在何时的时候增加了配置文件中的最后一行"skipServer": true
这个会属性会导致系统在重新生成依赖文件直接忽略服务内容,不会对其生成新的变更,相应的还有"skipClient": true
,这个会忽略的是客户端的变更。
加上这个属性是为了快速生成新的文件,否则会将全局所有的文件覆盖,因此这个属性嘛,见仁见智了,看需求啦
内容参考
yeoman官方介绍文档:https://yeoman.io/authoring/storage.html
https://blog.ippon.tech/how-to-efficiently-use-jhipster-in-your-company/
jHipster开发中对配置文件.yo-ce.json分析
原文地址:http://blog.51cto.com/yerikyu/2350936