云商店二次开发后台开发模式变更方案

简介:此方案结合了 maven 私服以及 VCS(推荐GitLab),可以实现脱离导入 Ecology 也能进行代码开发、调试以及团队协作开发,此方案免去了配置上的麻烦以及 Ecology 在 IDEA 内部的编辑、调试,可以减免现有团队开发模式环境配置的复杂度,提升团队开发的便捷性,简化总部与机构之间的开发沟通

@Author : Jaylan Zhou

1.搭建环境

  • Gitlab:作为VCS仓库,按机构及部门进行分组,每个二开项目作为Gitlab的一个Project
  • Maven [1]私服:作为环境管理的核心,按照每个 KB 版本,将 EC 的 classbean 打成 jar 包放入 maven 私服,同时在maven中央仓库找到此 kb 版本 lib 中引用的 jar 包,将打入私服的 classbean jar 包与 lib 中的 jar 包依赖信息做成pom工程,示例如下:



  4.0.0

  com.weaver
  KB...._pom
  1.0-SNAPSHOT
    pom
  KB...._pom
  
  http://www.example.com

  
    UTF-8
    1.8
    1.8
  

  
    
    
      com.weaver
      classbean
      KB.....
    
    
    
      ...
      ...
      ...
    
    ...

  

  
    
      
        
        
          maven-clean-plugin
          3.1.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.8.0
        
        
          maven-surefire-plugin
          2.22.1
        
        
          maven-jar-plugin
          3.0.2
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
        
        
          maven-site-plugin
          3.7.1
        
        
          maven-project-info-reports-plugin
          3.0.0
        
      
    
  


​ 之后,将此pom工程打入maven私服,客户可通过在maven项目中直接引入此pom工程,无需导入系统

2.客户具体操作

  • 1.安装Maven

  • 2.配置 Maven 私服,配置地址${maven根目录}/conf/setting.xml,修改信息如下:

    
    
    
    
                      
               /Users/jaylanzhou/Documents/m2
      
      
      
      
    
     
      
       
      
    
      
      
        
           weaver-ebu2 
           JaylanZhou
           bjebu2zhoujinliang
         
        
        
        
        
          nexus-releases
          admin
          bj_ebu220190507
        
        
        
          nexus-snapshot
          admin
          bj_ebu220190507
        
        
      
      
      
      
      
    
          
          
           weaver-ebu2 
           weaver-ebu2 
           weaver-ebu2 
           http://62.234.60.223:8081/repository/weaver-ebu2/ 
         
        
       
         
      alimaven  
      aliyun maven  
      http://maven.aliyun.com/nexus/content/groups/public/
      central          
    
    
      
    
      
      
               
                  weaver-ebu2
                  
                             
                           weaver-ebu2     
                           weaver-ebu2     
                           http://62.234.60.223:8081/repository/weaver-ebu2/     
                                
                                true     
                                
                                
                                false     
                               
                       
                   
               
        
      
      
                weaver-ebu2
           
    
      
    
    
  • 3.在IDEA中新建项目,具体操作步骤如下

      1. 在 Project 新建 Maven module,选择maven-archetype-quickstart
      1. 新建项目后,在 Maven 的 pom.xml 文件中引入客户对应版本的私服依赖,
  • 4.开始开发

  • 5.部署:

      1. 编译代码
      1. 将编译后的 class 文件,放到 Ecology 根目录的 classbean 中,默认编译地址为 ${项目根目录}/target/classess
      1. 将单独引用的 jar 包从 m2 仓库中提取出来,放到 WEB-INF/lib 下
      1. 启动服务
  • 6.VCS 配置

      1. 将代码上传到总部分配的 gitlab 仓库的本人对应分支中,实现团队协作开发

3.实现方案

  • 1.总部需要搭建一个 Maven 私服以及 Gitlab 的服务器,需要专人维护,按照各级职责,将权限以及部门、组划分好

  • 2.新开发入职时,为其分配 gitlab 以及 Maven 私服账号,Gitlab 账号可通过二次开发,在总部 EC 中以节点后接口的形式创建账号,Maven 私服目前是手动创建账号

  • 3.Maven 私服封装 KB 版本操作

      1. 将不同版本的 classbean 封装成 jar 包,上传到 maven 私服中
      1. 新建 pom 工程,根据 KB 的 lib 中引用的 jar 包,在 maven 中央仓库中寻找其依赖配置,如果找不到配置,则将这个 jar 包上传到 maven 私服中
      1. 修改 pom 工程的依赖,将 classbean 的 jar 包在私服的依赖配置,中央仓库找不到依赖的 jar 包在私服中的依赖配置,找到依赖的 jar 包在中央仓库的配置,放入 pom 工程的 pom.xml 中,具体操作请详见 1.搭建环境 中的配置
      1. 确认无误后,将 pom 工程部署到 maven 私服,供客户调用
  • 4.客户根据 2.具体操作 中的步骤,建立 maven 项目,引入总部配置的 pom 工程,即可无需导入源码,直接进行开发

  • 5.客户在开发过程中,需要将代码放入 Gitlab 对应的仓库中,使用此仓库进行团队协作开发,在申请上海协助时,给予相关协助人员的项目操作权限,在修改完成后,将对应的修改 push 到仓库中,客户进行 pull 操作后使用即可

    如果碰到修改源码的情况,请在 src 目录下按照源码路径建包并修改即可

  • 6.项目开发完成后,以 gitlab 中的项目主干为备案依据

4.变动计划

  • 1.老项目迁移:
      1. 须与相关人员进行对接,将 SVN 仓库中的项目数据迁移至 Gitlab 中,项目全部作为主干
      1. 现有开发项目迁移成 Maven 项目,可新建 Maven 项目,将原项目 src 中的 java 代码迁移至 Maven 项目中的 src 目录下,环境没问题后重新放到 gitlab 仓库中

5.客户Q&A

  • Q:我现在有一个项目,除了 classbean 和 lib 中的内容,还需要引用别的jar包,maven私服中有对应的jar包吗?

    A:在 maven 的 setting.xml 配置文件中,可以配置多个服务器节点,配置中给出了阿里云服的地址,云服中包含了大部分 maven 中央仓库的 jar 包,并且下载速度较中央仓库快了很多,建议配置一下

  • Q:那我单独引入的,在 lib 中没有的 jar 包,该如何部署到客户环境中并且生效?

    A:在 m2 仓库中,根据 groupId + artifactId + version 找到对应的 jar 包,放入 Ecology 的 WEB-INF/lib 目录下即可,示例:

    
        
        
          com.weaver
          classbean
          KB1234567
        
        ...
    
      
    
  • Q:编译后的代码地址在哪?我该如何打包到客户环境?

    A:默认编译地址为 ${项目根目录}/target/classess,可以修改,将 class 文件复制到 Ecology 根目录/classbean 下即可,或者将编译地址改到 classbean 下

  • Q:客户 KB 的 lib 中引用的某 jar 包版本,比我需要的版本低,我需要高版本的功能,该如何操作?

    A:我们会针对每一个 KB 版本,携带 lib 和 不携带 lib 的版本,可根据需要引入,如果引入携带 lib 的版本,需要排除其中的 jar 包的话,可使用,示例如下:

    
    
      com.weaver
      classbean
      KB1234567
      
        
          com.alibaba
          fastjson
        
      
    
    

  1. 如果是IDEA 2019以上版本,推荐使用3.6.2以下版本的Maven,否则可能会有问题 ↩

你可能感兴趣的:(云商店二次开发后台开发模式变更方案)