Jenkins + Gitee + Maven 自动化部署 Spring Boot

这篇具有很好参考价值的文章主要介绍了Jenkins + Gitee + Maven 自动化部署 Spring Boot。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、前言

1 .1、插件简介

1.2、插件安装

2、创建Maven项目

2.1、新建一个全新的项目

2.2、拷贝已有项目

3、项目配置

3.1 、General

3.2、源码管理

3.3、构建触发器

3.4、构建环境

3.5、Pre Steps

3.6、Build

1)Root POM

2)Goals and options

3)【高级】

3.7、Pre Steps

3.8、构建环境

3.9、Post Steps⁎⁎⁎

4、配置邮件通知服务

4.1、安装Email Extension Plugin插件

4.2、获取邮箱授权码

4.3、配置Jenkins邮箱通知

4.4、配置邮件通知 

4.5、Extended E-mail Notification配置

1)、配置SMTP服务器地址及其端口

2)、配置邮件登录凭证

3)、配置邮件通知标题、内容

4)、Extended E-mail Notificati其他配置

4.5、项目配置

4.6、邮件效果


本文主要介绍Jenkins自动打包、推送,发布,邮件通知,Jenkins具体配置参考之前文章

(一)Jenkins部署、基础配置

(二)Jenkins全局工具配置

1、前言

1 .1、插件简介

有很多插件都是选择的默认的安装的,Git plugin 和 Maven Integration plugin、publish over SSH、Deploy to container、Subversion

Git 3.11.0 使用Git访问远程仓库
Git Push Plugin 34 通过Git 插件执行 git push 作为构建后的步骤
Gitee Plugin 1.2.7 允许 Gitee 在提交代码或打开/更新拉取请求时触发 Jenkins 中的构建。它还可以将构建状态发送回 Gitee。
Maven Integration plugin  3.20 这提供Jenkins和Maven之间的深度集成。它增加了对基于SNAPSHOT的项目之间自动触发的支持,以及对Junit等各种Jenkins发布程序的自动配置。
publish-over-ssh 1.20.1 用于将编译结果发布到远程服务器
Deploy to container 成功构建后将战争到容器Tomcat等。
Subversion svn插件
Xcode integration 提供构建器来构建xcode项目,调用agvtool和包。ipa文

Jenkins本身无法实现远程部署到Tomcat的功能,需要安装Deploy to container Plugin插件实现 

1.2、插件安装

1). 安装SSH插件
如果没有安装SSH插件的话,是不支持配置远程SSH的,这里可以去插件里面看下,是否安装了。

2). 新增全局配置
环境配置, 管理Jenkins-->Configure System 找到 Publish over SSH,点击新增,新增SSH Server,输入Hostname,Username,Password,点击Test Configuration,提示:Success  代表SSH连通远端服务器,保存即可。

Jenkins + Gitee + Maven 自动化部署 Spring Boot

注:如果没有勾选 Use password authentication, or use a different key这个选项,点击测试连接,会报错:jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection

2、创建Maven项目

2.1、新建一个全新的项目

1)点击【新建Item】

2)输入任务名称

3)选择【构建一个maven项目】

4)点击【确定】,进入配置页面

Jenkins + Gitee + Maven 自动化部署 Spring Boot

2.2、拷贝已有项目

1)点击【新建Item】

2)输入任务名称

3)复制输入需要复制项目的名称,可下拉快捷选择

4)点击【确定】,进入配置页面,此时配置页面带有复制的项目配置,根据本项目需要修改即可

Jenkins + Gitee + Maven 自动化部署 Spring Boot

3、项目配置

        如果是新建任务,则直接进入配置页面修改配置;如果是已有任务,则右上角查找项目名称,回车后进入此项目空间,左侧点击【配置】按钮,进入配置页面;或者是列表直接找到项目名称,点击项目名称进入此项目;

3.1 、General

Jenkins + Gitee + Maven 自动化部署 Spring Boot

(1)、描述

纯文本,备注,项目简介、用途等

(2)、Discard old builds(丢弃旧的构建)

配置build保留的次数与天数;发布包保留次数、天数

Jenkins job执行build后,会在服务器上留下build记录及发布包,这些内容会占用磁盘空间;默认配置是不勾选Discard old builds的,此时默认值为365,显然这个值过大了;

Jenkins job在每次build结束后(无论成功还是失败),都会自动执行Discard old builds,释放磁盘空间;

因此根据磁盘空间来设置选项,如果磁盘空间充足,则均为15,如果磁盘空间不足,则均设置为3;当然也可根据实际需求来设置;

如图配置也可:

Jenkins + Gitee + Maven 自动化部署 Spring Boot

 其中“发布包保留天数”和“发布包最大保留”,这两个选项是通过 Discard old builds右下角【高级】按钮控制显示的;

(3)、Gitee 链接

默认值为:https://gitee.com

3.2、源码管理

1、选择代码管理,比如git

2、输入地址

3、添加凭据,建议以ssh登录

4、指定分支,默认*/master

配置源码仓库地址及账号,下图为Gitee示例

Jenkins + Gitee + Maven 自动化部署 Spring Boot

Repository URL:svn、Gitee代码地址;

Credentials(证书):已配置直接点击下拉框选择;第一次增加时需要点击【添加】按钮进行添加

3.3、构建触发器

        当某个事件被触发时,自动重新构建项目;非必须,一般都通过build now手动执行构建;当然了解了触发器,可以根据触发器形式打造理想中的构建形式。

1)Build whenever a SNAPSHOT dependency is built

当job依赖的快照版本被build时,执行本job;即当代码有更新时就构建项目

2)Build after other projects are built

作用:配置关注的项目,当关注的项目构建后,构建本项目

3)Build periodically:隔一段时间定时build一次,不管版本库代码是否发生变化

日程表规则:

MINUTE Minutes whinin the hour(0-59)

HOUR  The hour of the day(0-23)

DOM The day of the month(1-31)

MONTH The month(1-12)

DOW  The day of the week(0-7) where 0 and 7 are Sunday.

第一个是代表分钟 H 表示随机 
第二个是代表小时 9-15/4 9点到下午三点期间的每隔4个小时 
第三个是代表天 * 任意一天 
第四个是代表月份 1-11 表示1到11月份 
第五个是代表星期 1-5 表示工作日

没有用到 H 随机的话,不要加括号 
H(9-18) 9点到18点 中随机的一个点 
eg: 
* * * * * 表示任何一个时间段,同一个时间都可能会触发执行。不建议使用 
H/30 * * * * 表示每天每隔 30分钟构建一次 
H 4-19/3 * * * 表示,一天的凌晨点到下午7点,每隔3个小时构建一次 
* * 3-5 * * 表示,每个月的3号,4号,5号 都会被构建,具体时间未知 
* * * * 1-5 表示,工作日时会构建,具体时间未知 
H/30 8-19/3 1-28 1-11 1-5 表示 在1月到11月中的1号-28号,每个工作日,早晨的8点到下午7点每隔3.5个小时会触发构建(个人怀疑此条规则说错了,H/30意思就是每30分钟一次)

H */12 * * * 表示每12小时会触发构建

H/30 11-13/1 21-28 4-5 1-5  经验证,为11:20到13:50,每隔30分钟构建一次(11:20、11:50、12:20、12:50、13:20、13:50),而且是到13点50才结束

个人配置如图 ,每天中午12点定时构建一次:

Jenkins + Gitee + Maven 自动化部署 Spring Boot

4)Poll SCM:轮询构建

指定一段时间间隔去扫描代码仓库的代码是否有变更,如果有,则出发项目构建;

日程表的规则应该是遵循上述规则,未验证;

3.4、构建环境

非必须,但建议勾选Delete workspace before build starts。勾选此选项后,每次打包前jenkins会先删除工作区代码再打包;如果不勾选此选项,开发人员删除某些代码文件,但是此文件仍然在工作区保留,打包时仍然会带着打包,有可能会通过打包引起的bug;

Jenkins + Gitee + Maven 自动化部署 Spring Boot

 每次重新构建时都会从配置的源码地址取到最新的项目代码放到工作区中,但是Jenkins只会将代码放到工作区中,而不执行删除操作,同样的文件会覆盖掉,但如果新的代码中有些文件已经删除了,则在工作区中还会保留。所此需要构造这个选项。

3.5、Pre Steps

构建前操作,一般不需要配置

Jenkins + Gitee + Maven 自动化部署 Spring Boot

3.6、Build

Jenkins + Gitee + Maven 自动化部署 Spring Boot

1)Root POM

对应的pom.xml路径,此路径是相对于workspace的相对路径;注意:是相对位置,如果该文件不存在,会有红色字提示。 

2)Goals and options

打包命令,不要加mvn,默认前缀会加;一般为空即可,如果有需要再添加内容;可添加maven命令。

clean package -Dmaven.test.skip=true(清除以前的包,重新打包,并跳过测试) 

3)【高级】

点击高级按钮,配置maven,若在安装Jenkins后已对系统配置maven,则无需每次新建项目再次配置maven

Jenkins + Gitee + Maven 自动化部署 Spring Boot

3.7、Pre Steps

构建后操作:如果需要实现自动构建自动发布,则需要配置,或在Post Steps选项下配置

Jenkins + Gitee + Maven 自动化部署 Spring Boot

Execute Windows Batch command:执行Windows批处理命令

Execute shell:执行shell脚本

Invoke Ant:调用Ant脚本

Invoke Gradle script:调用Gradle脚本

Invoke top-level Maven targets:调用Maven项目等

Send files or execute commands over SSH:通过SSH发送文件或执行命令

Set build status to 'pending'on GitHub commit:构建状态设置为“等待我们GitHub提交

3.8、构建环境

Jenkins + Gitee + Maven 自动化部署 Spring Boot

Send files or execute commands over SSH after the build runs:这个表示在构建之后,执行向指定远程服务器发送文件或者在远程服务器执行脚本命令

add timestamps to the Console Output 表示构建控制台的日志加上时间戳 

3.9、Post Steps⁎⁎⁎

配置Send files or execute commands over SSH,实现远程将自动构建的jar包上传至远程服务器

Jenkins + Gitee + Maven 自动化部署 Spring Boot

1)run only if build succeeds

只有在构建成功后再运行下面步骤,

2)send files or execute commands over ssh

表示在构建之后,执行向指定远程服务器发送文件或者在远程服务器执行脚本命令,点击按钮Add post-build step选择添加

Jenkins + Gitee + Maven 自动化部署 Spring Boot

3)send files or execute commands over ssh 配置

Jenkins + Gitee + Maven 自动化部署 Spring Boot

点击高级对 脚本相关信息配置

Jenkins + Gitee + Maven 自动化部署 Spring Boot

SSH  Server Name:要拷贝的远程服务器,下拉选择系统配置选项配置好的服务器
Transfer Set source files:相对于工作空间的相对目录,例如:包在tatget/*.jar,可以填写多个,默认用逗号分隔,输入**/*表示所有目录下的所有文件
remove prefix:去除前缀,传到远程服务器上去掉此路径,比如:为空的话,传到服务器的地址为 上面全局配的 目录起始位置,例如此处:target/   
remote directory: 远程服务器包存放位置,相对于系统配置中配置SSH服务目录下路径,例如SSH服务器配置路径为: /home,这里配置为test/,文件上传后目录为:/home/test

exec command: 在文件传输完成后,在远程服务器执行的脚本命令(拷贝文件后,需要在服务器上要执行的脚本/命令)需要在部署服务器对应目录下新建shell脚本

exec timeout:脚本执行超时时间,尽量大一些,不然脚本没执行完任务就结束了
exec in pty:执行脚本后超时会自动退出

示例:

Jenkins + Gitee + Maven 自动化部署 Spring Boot

Source files选项是相对于project workspace的,输入**/*表示所有目录下的所有文件
Remote directory选项是配置的远程服务器相对路径(或者服务器的绝对路径?)
Exec command选项是在文件传输完成后,在远程服务器执行的脚本命令。

Name: 远程服务器IP

Source files:target/*.jar

Remove prefix: target/

Remote directory: /dyt

 exec command文件传输后执行命令,启动服务

source /etc/profile
project=sendEmail-0.0.1-SNAPSHOT.jar
echo "文件目录"
dir=/home/dyt/
pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill - $pid
fi
echo "运行构建的jar包"
nohup java -jar  $dir$project >/dev/null 2>&1 &

控制台输出查看结果:

Jenkins + Gitee + Maven 自动化部署 Spring Boot

Started by user administrator
Running as SYSTEM
Building in workspace C:\ProgramData\Jenkins\.jenkins\workspace\sendEmail
The recommended git tool is: NONE
using credential 0cdd1aa5-60b1-4f47-9bf8-dab98e3619dc
 > git.exe rev-parse --resolve-git-dir C:\ProgramData\Jenkins\.jenkins\workspace\sendEmail\.git # timeout=10
Fetching changes from the remote Git repository
 > git.exe config remote.origin.url https://toscode.gitee.com/dyt314569024/test.git # timeout=10
Fetching upstream changes from https://toscode.gitee.com/dyt314569024/test.git
 > git.exe --version # timeout=10
 > git --version # 'git version 2.39.0.windows.2'
using GIT_ASKPASS to set credentials 
 > git.exe fetch --tags --force --progress -- https://toscode.gitee.com/dyt314569024/test.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10
Checking out Revision b71f4fa4b13fa2cc65363ff4d0bea9e1fb31c4e0 (refs/remotes/origin/master)
 > git.exe config core.sparsecheckout # timeout=10
 > git.exe checkout -f b71f4fa4b13fa2cc65363ff4d0bea9e1fb31c4e0 # timeout=10
Commit message: "11"
 > git.exe rev-list --no-walk b71f4fa4b13fa2cc65363ff4d0bea9e1fb31c4e0 # timeout=10
Parsing POMs
Modules changed, recalculating dependency graph
Established TCP socket on 11918
[sendEmail] $ java -cp C:\ProgramData\Jenkins\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven35-agent-1.14.jar;F:\apache-maven-3.6.1\boot\plexus-classworlds-2.6.0.jar;F:\apache-maven-3.6.1/conf/logging jenkins.maven3.agent.Maven35Main F:\apache-maven-3.6.1 C:\ProgramData\Jenkins\war\WEB-INF\lib\remoting-3077.vd69cf116da_6f.jar C:\ProgramData\Jenkins\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven35-interceptor-1.14.jar C:\ProgramData\Jenkins\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-commons-1.14.jar 11918
<===[JENKINS REMOTING CAPACITY]===>channel started
Executing Maven:  -B -f C:\ProgramData\Jenkins\.jenkins\workspace\sendEmail\pom.xml -s F:\apache-maven-3.6.1\conf\settings.xml -gs F:\apache-maven-3.6.1\conf\settings.xml clean package -Dmaven.test.skip=true(清除以前的包,重新打包,并跳过测试)
[INFO] Scanning for projects...
[INFO] 
[INFO] -----------------------< com.ykx.mail:sendEmail >-----------------------
[INFO] Building sendEmail 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ sendEmail ---
[INFO] Deleting C:\ProgramData\Jenkins\.jenkins\workspace\sendEmail\target
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ sendEmail ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 5 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ sendEmail ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 25 source files to C:\ProgramData\Jenkins\.jenkins\workspace\sendEmail\target\classes
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ sendEmail ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\ProgramData\Jenkins\.jenkins\workspace\sendEmail\src\test\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ sendEmail ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ sendEmail ---
[INFO] No tests to run.
[JENKINS] Recording test results
[INFO] 
[INFO] --- maven-jar-plugin:3.1.2:jar (default-jar) @ sendEmail ---
[INFO] Building jar: C:\ProgramData\Jenkins\.jenkins\workspace\sendEmail\target\sendEmail-0.0.1-SNAPSHOT.jar
[INFO] 
[INFO] --- spring-boot-maven-plugin:2.2.6.RELEASE:repackage (repackage) @ sendEmail ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  16.466 s
[INFO] Finished at: 2023-01-19T23:04:56+08:00
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving C:\ProgramData\Jenkins\.jenkins\workspace\sendEmail\pom.xml to com.ykx.mail/sendEmail/0.0.1-SNAPSHOT/sendEmail-0.0.1-SNAPSHOT.pom
[JENKINS] Archiving C:\ProgramData\Jenkins\.jenkins\workspace\sendEmail\target\sendEmail-0.0.1-SNAPSHOT.jar to com.ykx.mail/sendEmail/0.0.1-SNAPSHOT/sendEmail-0.0.1-SNAPSHOT.jar
SSH: Connecting from host [DYT]
SSH: Connecting with configuration [dytCS] ...
SSH: Creating session: username [root], hostname [192.168.6.77], port [22]
SSH: Connecting session ...
channel stopped
SSH: Connected
SSH: Opening SFTP channel ...
SSH: SFTP channel open
SSH: Connecting SFTP channel ...
SSH: Connected
SSH: cd [/home]
SSH: OK
SSH: cd [/home]
SSH: OK
SSH: cd [dyt/]
SSH: OK
SSH: put [sendEmail-0.0.1-SNAPSHOT.jar]
SSH: OK
SSH: Opening exec channel ...
SSH: EXEC: channel open
SSH: EXEC: STDOUT/STDERR from command [source /etc/profile
project=sendEmail-0.0.1-SNAPSHOT.jar
echo "文件目录"
dir=/home/dyt/
pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill - $pid
fi
echo "运行构建的jar包"
nohup java -jar  $dir$project >/dev/null 2>&1 &] ...
SSH: EXEC: connected
鏂囦欢鐩綍
bash: 绗� 8 琛岋細kill: 锛氭棤鏁堢殑淇″彿澹版槑
杩愯鏋勫缓鐨刯ar鍖�
SSH: EXEC: completed after 213 ms
SSH: Disconnecting configuration [dytCS] ...
SSH: Transferred 1 file(s)
Finished: SUCCESS

  备注:高级选项勾选:Verbose output in console,代表可以在控制台看到执行结果,不勾选虽然执行成功了那么看不到。
windows的服务器执行文件,python文件或者其他,需要使用execute windows batch commend  。liunx 下使用execute shell

4、配置邮件通知服务

4.1、安装Email Extension Plugin插件

安装路径:Manage Jenkins>Manage Plugins

4.2、获取邮箱授权码

测试用的QQ邮箱,确保POP3/SMTP/IMAP服务是开启的,点击生成授权码,发送短信获取授权码,用于后续配置登录凭证

Jenkins + Gitee + Maven 自动化部署 Spring Boot

4.3、配置Jenkins邮箱通知

Manage Jenkins > Configure System下,Jenkins Location中配置系统管理员的邮箱地址

Jenkins + Gitee + Maven 自动化部署 Spring Boot

 拖动页面右侧滑块到页面最底部,接着进行邮件通知的相关配置

4.4、配置邮件通知 

SMTP服务器:使用邮箱对应的服务器地址

用户默认邮件后缀:可不填,填了,代表其他创建的用户账号的默认邮箱后缀为填入的邮箱后缀

SMTP用户名/密码:发送邮件的账号,密码为获取的授权码

SMTP端口:SMTP对应服务器对应端口

通过发送测试邮件测试配置

Test e-mail recipient :接收测试邮件邮箱地址

Test configuration:测试配置,点击Test configuration按钮,为测试账号发送邮件,成功提示 Email was successfully sent

Jenkins + Gitee + Maven 自动化部署 Spring Boot

 测试时若出现 javax.mail.MessagingException: Got bad greeting from SMTP host: smtp.163.com, port: 465, response: [EOF] 错误,则查看使用的端口是否需要使用SSL协议 

在配置上以上邮件通知并测试通过,测试邮箱成功收到测试邮件后,还需对Extended E-mail Notification模块进行配置(这个模块是用于发送构建后的报告邮件,不进行配置的话,在之后的项目构建中,你就会看到构建成功,邮件也发送成功,但是邮箱就是没有收到邮件)

4.5、Extended E-mail Notification配置

1)、配置SMTP服务器地址及其端口

Jenkins + Gitee + Maven 自动化部署 Spring Boot

常用邮箱 SMTP服务器地址及端口 POP3服务器地址及端口
QQ邮箱 smtp.qq.com(端口:25) pop.qq.com(端口:110)
QQ企业邮箱 pop.exmail.qq.com (SSL启用 端口:995) smtp.exmail.qq.com(SSL启用 端口:587/465)
126邮箱 pop.126.com(端口:110) smtp.126.com(端口:25)

2)、配置邮件登录凭证

Credentials:添加凭证Jenkins + Gitee + Maven 自动化部署 Spring Boot

 密码重新获取授权码

Jenkins + Gitee + Maven 自动化部署 Spring Boot

  凭证配置操作如图

Jenkins + Gitee + Maven 自动化部署 Spring Boot

 Jenkins + Gitee + Maven 自动化部署 Spring Boot

 注意:SMTP Username中的账号一定要与系统管理员的邮箱账号保持一致

3)、配置邮件通知标题、内容

Jenkins + Gitee + Maven 自动化部署 Spring Boot

 由于邮件使用了Html编写,所以配置Default Content Type选择类型HTML (text/html),附邮件内容代码

<!DOCTYPE html>    
<html>    
<head>    
<meta charset="UTF-8">    
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    
</head>    
    
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
    offset="0">    
    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
        <tr>    
            本邮件由系统自动发出,无需回复!<br/>            
            各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br> 
            <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
        </tr>    
        <tr>    
            <td><br />    
            <b><font color="#0B610B">构建信息</font></b>    
            <hr size="2" width="100%" align="center" /></td>    
        </tr>    
        <tr>    
            <td>    
                <ul>    
                    <li>项目名称 : ${PROJECT_NAME}</li>    
                    <li>构建编号 : 第${BUILD_NUMBER}次构建</li>    
                    <li>触发原因: ${CAUSE}</li>    
                    <li>构建状态: ${BUILD_STATUS}</li>    
                    <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                    <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                    <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    
                    <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>    
                </ul>    
 
<h4><font color="#0B610B">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>
 
<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
 
            </td>    
        </tr>    
    </table>    
</body>    
</html>

4)、Extended E-mail Notificati其他配置

Jenkins + Gitee + Maven 自动化部署 Spring Boot

 Jenkins + Gitee + Maven 自动化部署 Spring Boot

4.5、项目配置

打开项目设置,找到选项卡构建后操作, 点击增加购进后操作步骤,选择Editable Email Notification。

Project Recipient List:填入收件人的邮箱账号,有多个账号时使用逗号隔开

Jenkins + Gitee + Maven 自动化部署 Spring Boot

 Attachments:读取路径是主目录下的workspace文件夹 ,所以想要将报告以附件的形式发送的话,就需要在build文件中将报告的生成路径更改为项目的工作空间,

针对单个文件,直接填写相对路径;多个文件需要作为附件进行发送,可在Attachments中填入report/*.txt,如有多个文件的话,路径之间用英文逗号隔开,例如,项目根文件夹下有个文件1.txt,2.txt

Attach Build Log:选择是否发送构建日志

Content Type:内容类型,一般为html

Default Content:邮件内容,默认为系统设置

Jenkins + Gitee + Maven 自动化部署 Spring Boot

注:其他文件类型同理,路径同理,不支持发送文件夹,只能发送文件,一定要发送文件夹的话,就将其压缩成一个压缩文件

4.6、邮件效果

Jenkins + Gitee + Maven 自动化部署 Spring Boot鸣谢:Jenkins配置邮件通知服务,完整教程(含发送成功无法接收邮件处理方案)_不定时总结的那啥的博客-CSDN博客_jenkins 邮件通知 文章来源地址https://www.toymoban.com/news/detail-475794.html

到了这里,关于Jenkins + Gitee + Maven 自动化部署 Spring Boot的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jenkins+Docker+Gitee搭建自动化部署平台

    目录 服务器准备 Docker安装 yum 包更新到最新 设置yum源 安装docker 启动和开机启动 验证安装是否成功 Jenkins安装 拉取镜像 创建映射目录 运行镜像 运行出错 修正权限 重新运行镜像 新建安全组,放通8080端口 激活Jenkins Jenkins插件 Jenkins全局工具配置 自动构建Springboot项目 准备好

    2024年02月04日
    浏览(36)
  • Jenkins自动化构建部署前端项目(Linux+gitee)

    本文讲述了Jenkins自动化构建部署前端项目,内容包括Linux系统安装Jenkins、如何配置构建项目并发布到目标服务器。 因公司系统项目众多,前端项目打包麻烦,项目代码管理混乱,因此需要gitee+Jenkins做自动化构建,优化项目打包流程及代码管理。 本次教程可实现最简单的自动

    2024年02月03日
    浏览(41)
  • 前端项目打包和自动化部署(jenkins+gitee+nginx)

    1. 传统的开发模式 在传统的开发模式中,开发的整个过程是按部就班就行: 但是这种模式存在很大的弊端: 工作的不协调:开发人员在开发阶段,测试和运维人员其实是处于等待的状态。等到测试阶段,开发人员等待测试反馈bug,也会处于等待状态。 线上bug的隐患:项目准

    2024年02月01日
    浏览(32)
  • Jenkins+Maven+Gitlab+Tomcat 自动化构建打包,部署

    1、安装服务 Jenkins工具、环境、插件配置 全局变量配置 Manage JenkinstoolsJDK 安装 安装插件 Deploy to container 安装此插件,才能将打好的包部署到tomcat上     配置国内mvn源 创建maven项目 1  2   3    4    5    6    7    8     9 10  

    2024年02月05日
    浏览(38)
  • docker+jenkins+gitee+shell 自动化部署微服务(基于若依)【详细完整版】

    提示:需基本熟悉docker命令、shell脚本、微服务部署、git命令、服务器基本命令、node、maven 服务器环境:Linux-EulerOS(华为自主研发服务器系统,与CentOS基本类似) 安装组件:docker20.10.19、openjdk1.8.0_191、maven3.8.6、git2.33.0、node16.17.1、npm9.1.2、jenkinsci/blueocean、docker-compose 远程工

    2023年04月11日
    浏览(28)
  • 详细步骤记录:持续集成Jenkins自动化部署一个Maven项目

    提示:本教程基于CentOS Linux 7系统下进行 1. 下载安装jdk11 官网下载地址:https://www.oracle.com/cn/java/technologies/javase/jdk11-archive-downloads.html 本文档教程选择的是jdk-11.0.20_linux-x64_bin.tar.gz 解压jdk-11.0.20_linux-x64_bin.tar.gz命令为: 2. 下载Jenkins的war包 官网下载地址:https://mirrors.tuna.tsing

    2024年02月04日
    浏览(44)
  • 2023全网最细最全保姆级gitlab+Jenkins+maven自动化部署springboot项目教程

    如果没有Linux基础请仔细看好每一个步骤,避免出错,从0到1带你搭建自动化部署环境,包括服务器安装,自动化部署所需各类软件安装配置,详细贴出每一步,不断步骤,让你一次搭建部署完成,希望这篇文章能给大家带来一定的帮助,话不多说开始整 2.0 CentOs安装 2.0.1 下载VM虚拟机 我直

    2024年02月08日
    浏览(42)
  • Jenkins + Docker 一键自动化部署 Spring Boot 项目,步骤齐全,少走坑路!

    本文章实现最简单全面的Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走坑路。 环境 :centos7+git(gitee) 简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运行。 推荐一个开源免费的 Spring Boot 实战项目: https://git

    2024年02月08日
    浏览(52)
  • Jenkins+maven+testng+htmlreport单元自动化测试

    为了可以在jenkins自动化运行单元测试的代码,所以使用maven+testng的技术结合,达到手动或者定时去执行单元测试的代码,以便提高人工运行的自动化的效率。单元通过该方案也可以套用在httpclient框架去执行测试web api接口的自动化测试,原理是一致的。 安装开发工具:eclip

    2024年02月10日
    浏览(40)
  • Jmeter+Maven+jenkins+eclipse搭建自动化测试平台

    背景: 首先用jmeter录制或者书写性能测试的脚本,用maven添加相关依赖,把性能测试的代码提交到github,在jenkins配置git下载性能测试的代码,配置运行脚本和测试报告,配置运行失败自动发邮件通知,这样一来性能测试的job配置完成。接着,把性能测试的job配置成开发job的下

    2024年01月22日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包