1. 模版说明
e10-seconddev-template模版提供了快速搭建E10产品二次开发环境的能力。模版中实现了DevOps自动化构建中的大部分功能。在开发阶段,二开人员之需要关注需求逻辑的编写即可。代码提交到代码仓库中后会自动的触发代码审查、编译、构建打包等步骤。
2. 模版结构说明
|---- e10-seconddev-template # 模版名称
|------ .gitignore # 提交到git仓库中需要忽略的文件
|------ Jenkinsfile # devops自动化部署
|------ README.md # 快速构建使用说明
|------ build.gradle.kts # gradle项目的依赖等配置信息
|------ gradle.properties # gradle构建工具运行的变量参数
|------ md2html.sh # 转化 docs/***.md文档为html
|------ settings.gradle.kts # gradle项目结构层级
3. 使用模版构建E10二开项目
创建一个二开项目的名称,通常情况下都会以客户的名称的英文名称或者汉语拼音作为父项目的名称,比如廊坊管道设计院可能会命名为langfang-pipeline-design-institute或者是langfangguandaoshejiyuan。确定好名称后就可以在gitlab上使用模版开始创建客户的二开环境。
点击新建项目

选择从模版创建

使用模版

填写项目名称和群组完成二次开发环境的创建
这里的项目名称也就是在上边已经确定好的客户名称的英文或者汉语拼音的简拼。创建的项目的可见性级别可以按照自己项目的要求进行选择。

3.1 模版中文件说明

- Jenkinsfile:集成Jenkins服务实现可持续集成部署的脚本文件
- md2html.sh:调用pandoc、wkhtml等插件等每个功能项目下
docs路径下所有的markdown文档转为pdf和docx格式的文档 - settings.gradle.kts:gradle用来维护父子项目结构的文件
- build.gradle.kts:维护了子项目中常用到的jar包的依赖
3.2 setting.gradle.kts文件修改
setting.gradle.kts 文件位于项目的根目录,是用来负责配置和定义项目模块的结构。使用模版创建完成项目后,需要手动修改rootProject.name的值。建议将其修改为本次创建的仓库的名称。

在仓库中选中settings.gradle.kts文件,进入文件后点击编辑中的编辑单个文件将rootProject.name的值改为本次项目的名称。

3.3 build.gradle.kts文件修改
项目的build.gradle.kts位于项目的根目录,它主要通过id和版本号来统一管理项目中用到的依赖和插件的版本号。模块中的build.gradle.kts位于每一个模块的根目录下,它主要是负责配置特定模块的构建配置
修改客户名称
在项目的build.gradle.kts中搜索请输入客户名称替换成本仓库所对应的二开的客户的名称。比如:E10二开环境搭建

修改E10二开依赖JAR的版本号
在项目的build.gradle.kts中搜索请输入依赖项目的版本号替换成客户安装的E10的版本号。比如客户的E10的版本是 10.0.2410.01 。

3.4 Jenkinsfile文件修改
Jenkinsfile 中维护了自动完成devops的配置。它能够自动拉取提交分支的代码进行代码规范性的审查和构建编译打包。
修改获取所有分支的配置
在文件中搜索请输入根项目的名称,并将替换成在项目的setting.gradle.kts中维护的rootProjcet.name的值

修改代码拉取的仓库地址
在文件中搜索请输入您仓库地址并将其替换成当前仓库的地址。

4. 创建分支
开发新的功能需要在master的分支上在新建一个develop的分支或者是其他功能的feature的分支。develop的分支用来测试开发完成功能的分支,测试通过后可以将develop分支的代码合并到主分支上去。feature的分支用来开发一个个的小功能,feature分支的名称建议和开发的功能的模块相同。功能开发完成后就可以提交到代码仓库中去触发构建打包,然后将此分支的内容合并到开发分支上去进行测试。开发分支上的功能测试通过后合并到maser分支或者形成tag标记进行正式的发包部署在二开的环境中。
创建开发分支


创建功能分支
比如这次需要做一个 流程列表导出为excel的功能。那么可以将这次的功能分支命名为worflow-list-export

分支的名称为worflow-list-export分支的来源选择develop

5. 自动构建配置
登录地址http://192.168.2.253:18080/login?from=%2F配置构建的流水线
新增一个E10环境搭建演示的demo,并选择PipeLine流水线的功能,点击保存。其中的配置可以自己进行单独的配置,也可以复制一个已经配置完成存在的流水线进行配置。


5.1 修改流水线的配置
5.1.1 配置通用勾子触发器
-
在构建触发器中选择
Generic Webhook Trigger

-
获取gitlab中触发的类型

-
获取推送的用户

-
获取项目的ID

-
获取项目commit的标识

-
获取commit之前的ID

-
获取commit之后的ID

-
获取推送的类型

-
增加
runOpts的参数,可以区分出每次执行是自动还是手动

-
设置Token

-
勾选一下4个可以在Jenkins的控制台看到传入的参数

5.1.2 配置流水线
流水线的定义选择为Pipeline script from SCM并指定仓库的地址和用户的凭据

指定分支为 */master

5.1.3 保存配置

5.2 Gitlab的配置
登录http://192.168.2.253:8088/users/sign_in后找到在Jenkins中配置的仓库配置代码提交后需要触发的勾子函数。

点击 添加新的 webhook

添加Jenkins勾子函数的地址
http://192.168.2.253:18080/generic-webhook-trigger/invoke?token=这里替换成上边的token&runOpts=GitlabPush

配置触发来源,选择 正则表达式过滤掉来自master分支的推送

取消SSL验证,保存配置

测试配置

6. 项目拉取
-
Idea开发工具中选择从版本控制服务中拉取

-
仓库类型选择
gitlab,server填入自己搭建的gitlab仓库的地址

-
选择刚刚新建的二开环境的仓库进行项目的克隆操作

-
克隆完成后选择信任此项目

-
配置项目所使用的jdk等


7. 创建子项目
本次演示的示例流程列表导出为Excel,首先切换到workflow-list-export的功能分支上,


并且在切换的分支上创建一个名称为workflow-list-export的功能模块。

-
填写项目名称、构建工具的类型和构建工具的语言类型,检查所属的父项目和JDK是否正确(E9下的JDK使用的是JDK1.8)

-
修改模块中的
build.gradle.kts文件 可以将build.gradle.kts中所有的内容都删除掉,因为这些个配置我们都已经在根项目的build.gradle.kts的文件中进行配置了。删除后需要在文件中新增description = "子项目开发的功能描述"。最终制品的名称会用客户的名称和description值进行拼接构成压缩包的名称

7.1 模块结构

- docs:存放部署文档、开发文档等的说明,为markdown类型的
- src/main/java:编写java代码逻辑
- src/main/resource:存放非java文件的路径
8. 编译
开发完成的代码提交到git的仓库后会自动触发Jenkins的编译。编译完成后我们可以将打包好的功能包从制品的仓库中进行下载。下载完成可以直接将压缩包上传到系统中二次开发的功能中包中。避免了打包过程中文件的遗漏和位置的错放。

评论区