开发环境搭建
本章节讲述了使用HZERO 微服务产品平台开发微服务的一些软件依赖,以及如何在Windows 环境下进行安装使用。
主要包含两种模式:
一、本地开发模式,可独立于平台开发服务器环境,但本地需要安装较多的服务和工具,对机器的性能要求较高。  
       
二、混合开发模式(推荐),需依赖平台开发服务器环境,本地安装工具少,对机器性能要求低,但对于开发管理需要更多的规范性要求。
开发工具
- Git
 - JDK 1.8.0 及以上
 - maven 3.3 及以上
 - Docker for Windows
(适用模式一) - IDE
 - Mysql
(适用模式一) - Redis
(适用模式一) 
Git 安装
- 在 Git 官网 下载对应平台最新稳定的 Git 客户端。
 - 本地执行安装文件,安装 Git 环境。
 - 配置完成后打开 git bash 执行 
git,有提示则说明环境安装成功。 - 配置本地git。
 
打开git bash 执行如下命令:
# 请将下面命令按实际情况进行执行
git config --global user.name "Your Name"
git config --global user.email "Your Email"
Java 安装
- 在 Oracle 官网 下载对应平台的 JDK 1.8.0 以上的环境。
 - 本地执行安装文件,安装 JDK 环境。
 - Win 在环境变量系统变量中 配置环境变量 
JAVA_HOME指向JDK安装目录,并将 path 配置 JDK 的环境变量 指向 JDK 安装目录下JDK/bin, - 配置完成后打开 git bash 执行 
java,有提示则说明环境安装成功。(git bash执行会有乱码,cmd则正常) 
Maven 安装
- 在 Maven 官网 下载对应平台的合适的 maven 版本的压缩包。
 - 本地解压压缩包。
 - Win 在环境变量中系统变量的 path 配置 maven 的环境变量指向 maven 解压目录下的 
/bin。 - 配置完成后打开 git bash 执行 
mvn -v,有提示则说明环境安装成功。 
Docker for Windows 安装
- 在 Docker for Windows 下载安装包
 - 本地执行安装文件,安装Docker
 - 启动Docker,然后会提示启用Hyper-V需要重启
 - 重启后Docker会自动启动
 - 打开 git bash 执行 
docker --version,有提示则说明环境安装成功。 - 打开 docker for windows,并在General 中勾选 
Expose daemon on tcp://localhost:2375 without TLS 
目前仅有专业版的Windows系统能安装Docker,如使用的家庭版本Windows系统需升级成专业版
注意要使用Docker for Windows,机器必须开启虚拟化支持,部分机型默认禁用,需进入bios进行设置,因各机型设置不相一致,在此不做详细说明
IDE 安装
这里以idea 为例
- 在IDEA官网下载安装包
 - 本地执行安装文件,安装IDEA
 - 菜单栏File > Setting打开设置, Editor > Code Style > Line separator (for new lines): Unix and OS X (n)
 - 确保idea使用utf-8编码
 - 安装Docker插件。在File-Settings-Plugins中,搜索Docker integration,点击Install安装,并重启软件加载插件
 - IDEA中配置Docker,在File-Settings-Build,Execution,Deployment-Clouds中,点击加号新建,会自动读取docker信息,直接保存即可
 - 安装 Lombok 插件,在File-Settings-Plugins中,搜索Lombok,点击Install安装,并重启软件加载插件
 
其他软件安装
除了基本的软件之外,其他基础软件可以通过官网下载安装包,也可以通过docker 启动镜像。
- 在本地创建docker-compose的运行路径
 - 编写docker-compose.yaml 文件
 - 打开git bash 执行
docker-compose up -d - 执行
docker ps或docker-compose ps查看容器是否启动 
这里提供一份默认的mysql 配置和docker-compose.yaml 配置。
# mysql_db.cnf
[mysqld]
lower_case_table_names=1
character_set_server=utf8
max_connections=500
/** init_user.sql */
CREATE USER 'hzero'@'%' IDENTIFIED BY "hzero";
CREATE DATABASE IF NOT EXISTS hzero_platform DEFAULT CHARACTER SET utf8;
CREATE DATABASE IF NOT EXISTS hzero_governance DEFAULT CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON hzero_platform.* TO choerodon@'%';\
GRANT ALL PRIVILEGES ON hzero_governance.* TO choerodon@'%';\
FLUSH PRIVILEGES;
# docker-compose.yaml
version: "3"
services:
  mysql:
    container_name: mysql
    hostname: mysql
    image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/mysql:5.7.17
    ports:
    - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:
    - ./mysql/mysql_data:/var/lib/mysql
    - ./mysql/mysql_db.cnf:/etc/mysql/conf.d/mysql_db.cnf
    - ./mysql/init_user.sql:/docker-entrypoint-initdb.d/init_user.sql
    expose:
    - "3306"
    networks:
    - "c7nNetwork"
  redis:
    container_name: redis
    hostname: redis
    image: redis:4.0.11
    ports:
    - "6379:6379"
    expose:
    - "6379"
    networks:
    - "c7nNetwork"
networks:
  c7nNetwork:
    driver: bridge
停止容器通过命令docker-compose down。
有关Docker的更多信息请见此处
有关Docker-Compose的更多信息请见此处