实战技巧
项目扩展
如何扩展
克隆本项目,并移除mapgis-docs目录
mapgis-docs为mapgis-boot的开发手册,用于扩展项目参考,建议在扩展项目中移除
修改产品标识
替换项目artifactId,全项目搜索<artifactId>mapgis-boot</artifactId>,替换成<artifactId>mapgis-xxx</artifactId>
全项目搜索 xxx,替换成产品小写标识,如:igs、datastore、igs-x、igs-s、workspace、psmap、portal、manager
推送到新的项目
推送现有的Git仓库到一个新的项目仓库
cd existing_repo git remote rename origin old-origin git remote add origin git@github.com:xyz/xyz.git git push -u origin --all git push -u origin --tags
如何升级
MapGIS Boot属于平台级产品,每次升级改动内容较多,目前做不到平滑升级,这里给用户的升级建议是这样的:
- •通过cherry-pick进行仓库之间的同步,参考:五、转移到另一个代码库
对于sql脚本、docker脚本的同步需要仔细对比代码
git remote add boot git@github.com:MapGIS/MapGIS-Boot.git git fetch boot git log boot/master git cherry-pick <commitHash>
新建子模块
新建单体和微服务共用模块
建议项目结构如下:
├── mapgis-module-xxx // 模块xxx │ ├── mapgis-module-xxx-api // 模块API │ ├── mapgis-module-xxx-base-api // 基础API │ ├── mapgis-module-xxx-cloud-api // 微服务API │ ├── mapgis-module-xxx-local-api // 单体API │ ├── mapgis-module-xxx-biz // 模块业务 │ ├── mapgis-module-xxx-server // 模块服务器
在 mapgis-boot 的根 pom.xml 中针对 local 和 cloud 两个 profile 编写
mapgis.module.xxx.api.artifact
<profiles>
<!-- 单体模式 -->
<profile>
<id>local</id>
<properties>
<mapgis.module.xxx.api.artifact>mapgis-module-xxx-local-api</mapgis.module.xxx.api.artifact>
</properties>
</profile>
<!-- 微服务模式 -->
<profile>
<id>local</id>
<properties>
<mapgis.module.xxx.api.artifact>mapgis-module-xxx-cloud-api</mapgis.module.xxx.api.artifact>
</properties>
</profile>
</profiles>
模块之间的依赖关系如下:
- •
mapgis-module-xxx-local-api和mapgis-module-xxx-cloud-api依赖mapgis-module-xxx-base-api - •
mapgis-module-xxx-biz依赖${mapgis.module.xxx.api.artifact}
<dependency>
<groupId>com.zondy.mapgis</groupId>
<artifactId>${mapgis.module.xxx.api.artifact}</artifactId>
</dependency>
- •
mapgis-module-xxx-server依赖mapgis-module-xxx-biz - •
mapgis-server依赖mapgis-module-xxx-biz
mapgis-module-xxx-server为微服务版时需要独立运行的服务,在单体版下运行的是mapgis-server
新建微服务特有模块
可直接建立在 mapgis-cloud-module 模块下,建议模块名如下:
mapgis-cloud-module-xxx