系统分层(单系统多模块)

介绍一般系统的分层思想和实现 1. 主流分层   multiple-models (每层对应一个或多个 模块/子系统,根据每层的复杂度进行进一步切分) 2. 举例 一个结算系统包含业务层、引擎层、基础组件层,化简后,对应模块为业务模块settle-order-service、引擎模块settle-engine、数据模块settle-data。 2.1 创建项目根目录

# 进入workspace目录
cd ~/workspace

创建根目录

mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=pom-root -DgroupId=com.zmannotes.spring -DartifactId=multiple-modules -Dversion=1.0.0-SNAPSHOT

2.2 创建业务模块 settle-order-service

cd multiple-modules

mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.zmannotes.spring -DartifactId=settle-order-service

2.3 创建引擎模块settle-engine

mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.zmannotes.spring -DartifactId=settle-engine

2.4 创建数据模块settle-data

mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.zmannotes.spring -DartifactId=settle-data

3. 完整的项目示例 3.1 所有模块 whole-project-modules 3.2 模块内部结构 module-structure 4. 设置全局配置 修改multiple-modules目录下的pom.xml来设定全局配置。 4.1 统一设置所有子模块的默认依赖

          junit         junit         4.12         test                   org.mockito         mockito-all         1.10.19         test                   org.springframework         spring-test 4.1.8.RELEASE         test     

4.2 统一设置所有子模块依赖的版本号

    UTF-8     4.1.8.RELEASE                           org.springframework             spring-context             ${spring.version}              

4.3 设置发布仓库地址

             deployRelease         http://127.0.0.1:5081/nexus/content/repositories/releases/                   deploySnapshot         http://127.0.0.1:5081/nexus/content/repositories/snapshots/     

4.4 设置JDK版本

                     org.apache.maven.plugins             maven-compiler-plugin             2.1                           1.8              1.8                        

Good Luck!