project-create.md 5.2 KB
Newer Older
高洋's avatar
高洋 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
# 新开项目

本章节将引导您从 零 开始,创建一个可以运行的 Demo 工程。此工程基于HEL融租易标准版,包含一个 demo 实例。
  
## 后端项目


### 确定项目信息
1. groupId  本项目的代号,比如融租易项目,代号为 hel
2. artifactId  本项目的顶层目录名称,使用项目代号(第一个字母大写)
 + Parent,如 HelParent
3. package 包名称,使用项目代号 + core ,如 Hel.core
4. archetypeVersion 是指模板项目的版本,可以使用以下版本号
>  1.0-RELEASE
  
### 新建项目  (融租易HEL1.0)

确定上述信息后,可以使用如下命令新建项目:

`注意`  maven-archetype-plugin `2.4`及以下版本可以正常使用下面命令

```
mvn archetype:generate  -D archetypeGroupId=hel-custom -D archetypeArtifactId=hel-custom-parent-archetype -D archetypeVersion=1.0-RELEASE -D groupId=hel -D artifactId=HelParent -D package=Hel.core -D version=1.0-RELEASE -D archetypeRepository=https://hel.hand-china.com/nexus/content/repositories/Hel-Releases

```

在maven-archetype-plugin `3.0.0` 版本中,移除了对-D archetypeRepository参数的支持,会报以下错误
![](/assets/mvn_archetype_plugin.png)

解决方案:
指定使用2.4版本的archetype-plugin插件:
```
mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate  -D archetypeGroupId=hel-custom -D archetypeArtifactId=hel-custom-parent-archetype -D archetypeVersion=1.0-RELEASE -D groupId=hel -D artifactId=HelParent -D package=Hel.core -D version=1.0-RELEASE -D archetypeRepository=https://hel.hand-china.com/nexus/content/repositories/Hel-Releases

```


> 以下内容所指的 `HelParent` 均指上面命令中的参数 `artifactId` 的值,请按实际情况替换

新的项目目录结构如下:
```
.
├── README.md (项目README,请在此处写上项目开发的注意信息,方便团队协同)
├── core(功能实现项目)
│   ├── pom.xml (子项目core的pom.xml文件)
│   └── src
│       └── main
│           ├── java
│           │   ├── hel
│           │   │   └── core(前面的包名称)
│           │   │       ├── db(数据表结构,数据初始化入口文件)
│           │   │       │   └── liquibase.groovy
│           │   └── resources(项目配置文件目录)
│           │       ├── spring (spring配置文件目录)
│           │       ├── config.properties
│           │       └── logback.xml(日志配置文件)
│           └── webapp(Webapp目录)
│               ├── resources(UI 资源库目录)
|               |        └── demo.js(demo.js样例,可以删除)
│               └── WEB-INF
│                   └── view(页面文件目录)
│                       └── demo.html(demo.html样例,可以删除)
├── core-db(数据库脚本及初始化数据项目)
│   ├── pom.xml
│   └── src
│       └── main
│           └── java
│               └── hel
│                   └── core
│                       └── db
│                           ├── data(数据文件)
│                           │   └── (init-data)
│                           └── table(数据库表结构管理)
│                               └── 2016-06-01-init-migration.groovy
└── pom.xml

```

### 确定本项目使用的数据库

> 目前已经测试过支持的数据库有Mysql,Oracle,SqlServer  
> 请修改 `HelParent/core/src/main/java/hel/core/db/liquibase.groovy` 以适配不同的数据库

确定好数据库后,按照 [Oracle,MySql,Sqlserver数据库配置](database-config.md) 修改项目配置文件。    
修改配置文件后,按照[创建数据库](database-init.md) 中的步骤创建数据库  


### 编译整个项目
在 HelParent 目录下执行:
```
mvn clean install -Dmaven.test.skip=true
```

<a name="liquibase"> </a>

### 初始化数据库表结构及基础数据
在 HelParent 项目录下执行:

- MySql 
高洋's avatar
高洋 committed
100
     - `mvn process-resources -D skipLiquibaseRun=false -D db.driver=com.mysql.jdbc.Driver -D db.url=jdbc:mysql://127.0.0.1:3306/hel -Ddb.user=hel_dev -Ddb.password=hel_dev`
高洋's avatar
高洋 committed
101
- SqlServer 
高洋's avatar
高洋 committed
102
     - `mvn process-resources -D skipLiquibaseRun=false  -Ddb.user=hel_dev -Ddb.password=hel_dev-D db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver -D db.url="jdbc:sqlserver://127.0.0.1:1433; DatabaseName=hel"`
高洋's avatar
高洋 committed
103
- Oracle 
高洋's avatar
高洋 committed
104
     - `mvn process-resources -D skipLiquibaseRun=false -D db.driver=oracle.jdbc.driver.OracleDriver -D db.url=jdbc:oracle:thin:@127.0.0.1:1521:hel -Ddb.user=hel_dev -Ddb.password=hel_dev
高洋's avatar
高洋 committed
105 106 107 108 109 110 111 112 113 114 115
   - 以上命令中,需要按实际情况修改 url,user,password

### 测试
1. 在 HelParent 工程目录下执行命令(IntelliJ IDEA 用户可以跳过此步骤)
  ```
  mvn eclipse:eclipse
  ```
  
3. 将所有工程导入 IDE 工具(Eclipse,IntelliJ IDEA)中
4. 配置 Server ,配置 JNDI 数据源,参照[多数据库配置](chapter1.1.md)
  - 需要 Tomcat 7+, 不支持 Tomcat 6
高洋's avatar
高洋 committed
116
5. 将 hel 工程发布到 tomcat/webapps,运行
高洋's avatar
高洋 committed
117 118 119 120 121

### 更新HEL依赖

  [更新项目依赖的HEL版本](project-update.md)