[手把手系列之] Jenkins自动化部署Springboot后端项目
1、自由风格软件项目(FreeStyle Project)自由风格项目是Jenkins中最简单、最灵活的任务类型之一。它允许用户配置和组织构建过程的各个方面。在自由风格项目中,你可以定义构建脚本、设置触发构建的条件、配置源代码管理、构建后的操作等。这是一个适用于各种类型项目的通用任务类型。特点:灵活性高,适用于各种构建场景。支持构建后的操作,比如邮件通知、部署等。2、Maven 项目对于使用Mav
一、Jenkins的常用类型介绍
1、自由风格软件项目(FreeStyle Project)
自由风格项目是Jenkins中最简单、最灵活的任务类型之一。它允许用户配置和组织构建过程的各个方面。在自由风格项目中,你可以定义构建脚本、设置触发构建的条件、配置源代码管理、构建后的操作等。这是一个适用于各种类型项目的通用任务类型。
特点:
灵活性高,适用于各种构建场景。
支持构建后的操作,比如邮件通知、部署等。
2、Maven 项目
对于使用Maven进行构建的Java项目,Jenkins提供了专门的Maven项目类型。在Maven项目中,你可以配置Maven构建的一些参数,比如clean install。Jenkins将自动处理Maven构建生命周期。
特点:
针对Maven项目进行了优化,简化了配置。
自动管理Maven构建生命周期。
3、多配置项目(Multi-Configuration Project)
多配置项目是一种用于构建和测试不同配置的任务类型。它允许你定义一组不同的构建配置,然后在这些配置上执行构建。这对于需要在不同环境或配置下运行测试的项目非常有用。
特点:
支持配置矩阵,适用于多配置的测试场景
可以同时运行多个构建配置
4、流水线项目(Pipeline Project)
流水线项目引入了Pipeline DSL(Domain Specific Language),使得构建过程变得更加可编程和可维护。Pipeline项目使用Jenkinsfile定义整个构建过程,包括构建、测试、部署等。这使得流水线项目非常适用于复杂的构建和部署流程。
特点:
支持可编程的构建过程。
高度可定制,适用于复杂项目的构建和部署。
5、 多分支项目(Multi-Branch Project)
多分支项目是针对版本控制系统中多个分支的构建需求而设计的。它会自动检测版本控制系统中的不同分支,并为每个分支创建一个独立的构建任务。
特点:
自动检测并构建版本控制系统中的各个分支。
适用于维护多个分支的项目。
二、配置运行环境及插件
1、安装Blue Ocean插件
2、Maven配置
- Maven 全局配置
- Maven在本机的安装目录
3、JDK安装目录
三、新增流水线项目(Pipeline Project)
1、新增Item 输入一个任务名称,选择Pipeline选项
2、进入该任务Configure配置页面,构建触发器并在Gitee仓库添加WebHook
3、流水线脚本
- Pipeline script:在本页面构建流水线执行脚本
- Pipeline script from SCM:仓库的根目录存放Jenkinsfile,流水线脚本从Gitee仓库获取并执行
- 选择Git+maven的构建脚本方式(完整脚本我放在最后)
4、手动执行脚本测试,项目成功启动
5、完整脚本
pipeline {
agent any
tools{
maven "maven3.3.9"
jdk"jdk8"
}
stages {
stage('拉取代码') {
agent none
steps {
git(url: 'https://gitee.com/xiestrong/jenkins-auto-build-demo.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false)
echo '拉取代码完成'
}
}
stage('项目编译') {
steps {
bat 'mvn clean package -Dmaven.test.skip=true'
echo '项目编译打包完成'
}
}
stage('创建指定目录文件夹&移动项目路径') {
steps {
bat '''
setlocal enabledelayedexpansion
set "BASE_DIR=C:\\projectTest"
set "DATE_FORMAT=%Y%m%d"
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set "DT=%%a"
set "YEAR=!DT:~0,4!"
set "MONTH=!DT:~4,2!"
set "DAY=!DT:~6,2!"
set "TARGET_FOLDER=%BASE_DIR%\\!YEAR!!MONTH!!DAY!"
if not exist "!TARGET_FOLDER!\\" (
mkdir "!TARGET_FOLDER!"
)
xcopy /Y "C:\\ProgramData\\Jenkins\\.jenkins\\workspace\\metting-api-auto-build\\target\\*.jar" "%BASE_DIR%\\!YEAR!!MONTH!!DAY!"
'''
echo '创建指定目录文件夹&移动项目路径完成'
}
}
stage('结束指定端口进程') {
steps {
bat '''
FOR /F "tokens=5" %%a IN ('netstat -aon ^| findstr ":8862"') DO (
IF "%%a" NEQ "0" (
TaskKill.exe /F /PID %%a & exit /b
echo 'end port suuccess'
) ELSE (
echo 'not find port'
)
)
'''
}
}
stage('运行项目') {
steps {
bat '''
setlocal enabledelayedexpansion
set "BASE_DIR=C:\\projectTest"
set "DATE_FORMAT=%Y%m%d"
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set "DT=%%a"
set "YEAR=!DT:~0,4!"
set "MONTH=!DT:~4,2!"
set "DAY=!DT:~6,2!"
set "TARGET_FOLDER=%BASE_DIR%\\!YEAR!!MONTH!!DAY!"
java -jar %BASE_DIR%\\!YEAR!!MONTH!!DAY!/RookieMeeting-0.0.1-SNAPSHOT.jar &
'''
echo '运行项目完成'
}
}
}
}
更多推荐
所有评论(0)