一、系统环境
组件 | 版本 |
---|---|
Ubuntu | 20.04 |
Jenkins | 2.319.1 |
Bitbucket |
二、多分支部署
1、代码库中新建分支
分支 | 版本 |
---|---|
master | 主分支 |
dev | 开发分支 |
2、修改对应分支的Jenkinsfile
/* 从Bitbucket上拉取分支
* @url git地址
* @branch 分支名称
* @credentialsId Jenkins凭证Id,用于远程访问
*/
git(url: 'https://demo@bitbucket.org/demo/demo.git', branch: 'master', credentialsId: 'Bitbucket')
3、Jenkins新建任务
分支 | 版本 |
---|---|
demo-master | 主分支 |
demo-dev | 开发分支 |
4、指定流水线分支
master和dev
三、聚合项目部署
1、简介
在SpringBoot或其他语言框架中经常存在聚合项目,即一个父项目中包含多个子项目。
聚合工程优势(以Maven为例):
1.统一maven操作。可以在一个maven工程管理多个子工程(每个子工程可单独打包,重启,调试。也可通过聚合工程一起管理)。
2.统一管理依赖版本。可以借助父工程(dependencyManagement)来管理依赖包的版本,子工程就直接引用包而不用添加版本信息。
3.统一引入公共依赖,而不需要每个子项目都去重复引入。
4.防止pom.xml过长。
2、构建聚合项目方式
spring boot创建多模块聚合工程
maven 聚合工程 用spring boot 搭建 spring cloud 微服务 模块式开发项目
SpringBoot搭建聚合项目
3、Jenkins配置
demo项目目录 | 作用 |
---|---|
demo-hello | say hello |
demo-world | say world |
分别在demo-hello和demo-world目录下新建Jenkinsfile文件
# demo-hello下Jenkinsfile
//执行maven打包
//-B --batch-mode 在非交互(批处理)模式下运行(该模式下,当Mven需要输入时,它不会停下来接受用户的输入,而是使用合理的默认值);
//打包时跳过JUnit测试用例,
//-DskipTests 不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下
//-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类
sh 'mvn -B -DskipTests clean package -pl com.example:demo-hello -am'
# demo-world下Jenkinsfile
//执行maven打包
//-B --batch-mode 在非交互(批处理)模式下运行(该模式下,当Mven需要输入时,它不会停下来接受用户的输入,而是使用合理的默认值);
//打包时跳过JUnit测试用例,
//-DskipTests 不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下
//-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类
sh 'mvn -B -DskipTests clean package -pl com.example:demo-world -am'