1. 维护信息

1.1. 20180827

维护时间:2018-08-27

维护人员:weiw

维护内容:创建文档

2. A8工程管理

2.1. 工程命名规范

工程命名结构为工程性质-应用名

工程名全部为小写字母
工程性质:平台:ctp
         应用:apps(A8应用)、cip(集成应用)、dee(交换引擎应用)等
应用名:功能的[英文]描述,尽量为单个单词,不能使用缩写,不能使用拼音

2.2. 工程结构

  • v5开发工程使用业界通用的工程结构
  • 工程名称使用统一的工程命名
  • 业务代码统一放在包com.seeyon下,如news组的代码放在
    apps-news
    ├──branches
    |    ├──V6.1SP2_Hotfix
    |    └──V7.0_Hotfix
    ├──tags
    |    ├──V6.1SP2_Release_20180328
    |    └──V7.0_Release_20180601
    └──trunk
         └──src
             ├──main
             |    ├──java
             |    |    └──com
             |    |        └──seeyon
             |    |              └──news
             |    |                   └──NewsManager.java
             |    ├──resources
             |    └──webapp
             └──test
                  ├──java
                  |    └──com
                  |        └──seeyon
                  |              └──news
                  |                   └──NewsManagerTest.java
                  └──resources
    

2.3. 环境及编译

2.3.1. JDK规范

JDK统一使用JDK8,因需要支持WAS,编译输出级别需为1.6(代码风格请使用JDK6风格,JDK7以上风格会导致编译不通过)。编译统一使用maven,maven中会有编译需要的一切配置,禁止使用本地配置编译代码。

禁止对jdk自带的sun包的调用

2.4. 工程定义

2.4.1. 平台

A8平台由若干个A8平台工程组成,是所有A8基础功能的集合,是所有应用的基础 平台工程以ctp为前缀,核心工程为ctp-core

2.4.2. 应用

2.4.3. apps(A8应用)

A8应用以apps为前缀,所有A8应用依赖于A8平台,但是A8应用间不能有任何的依赖关系,全部为平级

cip(集成应用)

集成应用以cip为前缀,主要为集成部门的相关应用,与所有A8应用同级,与A8应用间不能有任何的依赖关系

dee(交换引擎应用)

交换引擎应用以dee为前缀,主要为交换引擎部门的相关应用,与所有A8应用同级,与A8应用间不能有任何的依赖关系

3. POM文件

3.1. POM(项目对象模型)介绍

Project Object Model,项目对象模型。通过xml格式保存的pom.xml文件。作用类似ant的build.xml文件,功能更强大。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。

POM文件只能由平台部门维护

3.2. maven工程配置规范

  • maven配置文件统一使用工程根目录下的settings.xml,配置会使用统一的内部nexus服务器
  • 不允许依赖本地jar包,所有jar包依赖都来自于pom文件中的定义
  • 依赖更新、工程配置、工程构建仅允许通过maven来实现

3.3. 依赖定义

3.3.1. 平台

平台的核心工程为ctp-core,ctp-core依赖A8项目定义工程root。平台间的依赖关系请参考CI流程章节(TODO 更新链接)

3.3.2. 应用

应用的核心工程为apps-root,apps-root依赖整个平台,所有应用依赖apps-root,禁止应用间互相依赖,如apps-bbs的依赖为

    <parent>
        <groupId>com.seeyon</groupId>
        <artifactId>apps-root</artifactId>
        <version>7.0SP1-SNAPSHOT</version>
    </parent>

results matching ""

    No results matching ""