Hap 框架环境搭建
-
JDK 1.8 及以上
-
IntelliJ IDEA
-
redis 3.0 及以上
-
maven 3.3 及以上
需要把配置文件
maven安装路径\conf\settings.xml
里的 mirrors 标签下的内容注释掉
<mirrors> <!-- mirror | Specifies a repository mirror site to use instead of a given repository. The repository that | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used | for inheritance and direct lookup purposes, and must be unique across the set of mirrors. | <mirror> <id>mirrorId</id> <mirrorOf>repositoryId</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://my.repository.com/repo/path</url> </mirror> --> <!-- <mirror> <id>maven-default-http-blocker</id> <mirrorOf>external:http:*</mirrorOf> <name>Pseudo repository to mirror external repositories initially using HTTP.</name> <url>http://0.0.0.0/</url> <blocked>true</blocked> </mirror> --> </mirrors>
-
Tomcat 7+ (不支持 Tomcat 6)
-
数据库(任选)
- Mysql server 5.6 或 5.7(不支持 8 以上)
- SqlServer 2012 及以上
- Oracle 9 以上
-
Navicat Premium(或其他)
-
Git
新建数据库
修改 MySQL 默认配置(因为框架里面使用的是 utf8 的编码)
修改一下 MySQL 的配置文件 my.cnf (or my.ini),,在 [mysqld] 标签下添加:
lower_case_table_names = 1;
character_set_server = utf8;
max_connections = 500;
MySQL 的默认 ini 文件位置在:
C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
要让配置生效,必须用修改后的配置文件覆盖掉这个位置的配置文件。然后去服务里面重新启动 MySQL57 这个服务。
如果想要修改 MySQL 启动时默认加载的 ini 文件地址,可以去注册表里找到
HKEY_LOCAL_MACHINE---->SYSTEM---->CurrentControlSet---->Services---->MySQL
然后找到 ImagePath,修改掉 defaults-file 对应的值:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" MySQL57
PS:可使用此命令查看数据库的编码
show variables like '%char%';
创建数据库对象和数据库
- 用管理员登陆 mysql
- 创建数据库 hap_dev 与 hap_prod
create schema hap_dev default character set utf8;
create schema hap_prod default character set utf8;
- 创建用户 hap_dev,并将密码设置为 hap_dev
CREATE USER hap_dev@'%' IDENTIFIED BY 'hap_dev';
CREATE USER hap_dev@'localhost' IDENTIFIED BY 'hap_dev';
- 将上面新建的 hap_dev 和 hap_prod 的权限全部赋予用户 hap
GRANT ALL PRIVILEGES ON hap_dev.* TO hap_dev@'%';
GRANT ALL PRIVILEGES ON hap_dev.* TO hap_dev@'localhost';
GRANT ALL PRIVILEGES ON hap_prod.* TO hap_dev@'%';
GRANT ALL PRIVILEGES ON hap_prod.* TO hap_dev@'localhost';
flush privileges;
数据源配置
- 将 Mysql 驱动中得 jar 文件拷贝到 Tomcat 安装目录下的 lib 文件夹下
- 默认使用的 JNDI name 为 jdbc/hap_dev
- tomcat 需要配置 context.xml:
需要在
tomcat 安装路径\conf\context.xml
文件的 context 标签下添加
<Context>
·····
<Resource
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/hap_dev"
name="jdbc/hap_dev"
type="javax.sql.DataSource"
username="hap_dev"
password="hap_dev"
/>
·····
</Context>
新建项目
确定项目信息
- groupId 本项目的代号,比如汉得的 BI 产品,代号为 hbi
- artifactId 本项目的顶层目录名称,使用项目代号(第一个字母大写) + Parent,如 HbiParent
- package 包名称,使用项目代号 + core ,如 hbi.core
- archetypeVersion 对应依赖的 HAP 版本
3.5.0-RELEASE 版本及以上版本
cmd 运行下面命令:
mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -D archetypeGroupId=hap -D archetypeArtifactId=hap-webapp-archetype -D archetypeVersion=3.5-SNAPSHOT -D groupId=hbi -D artifactId=HbiParent -D package=hbi.core -D archetypeRepository=http://nexus.saas.hand-china.com/content/repositories/rdcsnapshot
以下内容所指的 HbiParent 均指上面命令中的参数 artifactId 的值,请按实际情况替换
输入命令后在弹出 选择版本 的时候输入:3.5.8.1-RELEASE
.
├── README.md (项目README,请在此处写上项目开发的注意信息,方便团队协同)
├── core(功能实现项目)
│ ├── pom.xml (子项目core的pom.xml文件)
│ └── src
│ └── main
│ ├── java
│ │ ├── hbi
│ │ │ └── core(前面的包名称)
│ │ │ │
│ │ │ ├── controllers(Controller包)
│ │ │ │ └── DemoController.java(Controller类)
│ │ │ ├── db(数据表结构,数据初始化入口文件)
│ │ │ │ └── liquibase.groovy
│ │ │ ├── dto(Dto包)
│ │ │ │ └── Demo.java(Dto实现类)
│ │ │ ├── mapper(Mapper包)
│ │ │ │ ├── DemoMapper.java(Mapper接口)
│ │ │ └── service(Service包)
│ │ │ ├── IDemoService.java
│ │ │ └── impl(Service实现)
│ │ │ └── DemoServiceImpl.java
│ │ └── resources(项目配置文件目录)
│ │ ├── mapper
│ │ │ └── DemoMapper.xml(Mapper xml文件)
│ │ ├── spring (spring配置文件目录)
│ │ ├── config.properties
│ │ └── logback.xml(日志配置文件)
│ └── webapp(Webapp目录)
│ ├── lib(UI 资源库目录)
│ └── WEB-INF
│ ├── web.xml(Web.xml配置)
│ └── view(页面文件目录)
│ └── demo(DEMO页面文件目录)
├── core-db(数据库脚本及初始化数据项目)
│ ├── pom.xml
│ └── src
│ └── main
│ └── java
│ └── hbi
│ └── core
│ └── db
│ ├── data(数据文件)
│ │ └── (init-data)
│ └── table(数据库表结构管理)
│ └── 2016-06-01-init-migration.groovy
└── pom.xml
编译整个项目
在 HbiParent 目录下执行:
mvn clean install -Dmaven.test.skip=true
初始化数据库表结构及基础数据
在 HbiParent 目录下执行:
mvn process-resources -D skipLiquibaseRun=false -D db.driver=com.mysql.jdbc.Driver -D db.url=jdbc:mysql://127.0.0.1:3306/hap_dev -Ddb.user=hap_dev -Ddb.password=hap_dev
Idea 部署
配置项目 configuration
点击添加一个 Tomcat Server
然后选择 Deployment,点击添加一个 Artifact,选中带 exploded 后缀的,并可以修改 Application Context
运行
一切都配置好后,点击 Idea 工具栏的运行即可。