国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

這篇具有很好參考價(jià)值的文章主要介紹了Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

1、前言

1?.1、插件簡(jiǎn)介

1.2、插件安裝

2、創(chuàng)建Maven項(xiàng)目

2.1、新建一個(gè)全新的項(xiàng)目

2.2、拷貝已有項(xiàng)目

3、項(xiàng)目配置

3.1 、General

3.2、源碼管理

3.3、構(gòu)建觸發(fā)器

3.4、構(gòu)建環(huán)境

3.5、Pre Steps

3.6、Build

1)Root POM

2)Goals and options

3)【高級(jí)】

3.7、Pre Steps

3.8、構(gòu)建環(huán)境

3.9、Post Steps???

4、配置郵件通知服務(wù)

4.1、安裝Email Extension Plugin插件

4.2、獲取郵箱授權(quán)碼

4.3、配置Jenkins郵箱通知

4.4、配置郵件通知?

4.5、Extended E-mail Notification配置

1)、配置SMTP服務(wù)器地址及其端口

2)、配置郵件登錄憑證

3)、配置郵件通知標(biāo)題、內(nèi)容

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

4.5、項(xiàng)目配置

4.6、郵件效果


本文主要介紹Jenkins自動(dòng)打包、推送,發(fā)布,郵件通知,Jenkins具體配置參考之前文章

(一)Jenkins部署、基礎(chǔ)配置

(二)Jenkins全局工具配置

1、前言

1?.1、插件簡(jiǎn)介

有很多插件都是選擇的默認(rèn)的安裝的,Git plugin 和 Maven Integration plugin、publish over SSH、Deploy to container、Subversion

Git 3.11.0 使用Git訪問(wèn)遠(yuǎn)程倉(cāng)庫(kù)
Git Push Plugin 34 通過(guò)Git 插件執(zhí)行 git push 作為構(gòu)建后的步驟
Gitee Plugin 1.2.7 允許 Gitee 在提交代碼或打開/更新拉取請(qǐng)求時(shí)觸發(fā) Jenkins 中的構(gòu)建。它還可以將構(gòu)建狀態(tài)發(fā)送回 Gitee。
Maven Integration plugin? 3.20 這提供Jenkins和Maven之間的深度集成。它增加了對(duì)基于SNAPSHOT的項(xiàng)目之間自動(dòng)觸發(fā)的支持,以及對(duì)Junit等各種Jenkins發(fā)布程序的自動(dòng)配置。
publish-over-ssh 1.20.1 用于將編譯結(jié)果發(fā)布到遠(yuǎn)程服務(wù)器
Deploy to container 成功構(gòu)建后將戰(zhàn)爭(zhēng)到容器Tomcat等。
Subversion svn插件
Xcode integration 提供構(gòu)建器來(lái)構(gòu)建xcode項(xiàng)目,調(diào)用agvtool和包。ipa文

Jenkins本身無(wú)法實(shí)現(xiàn)遠(yuǎn)程部署到Tomcat的功能,需要安裝Deploy to container Plugin插件實(shí)現(xiàn)?

1.2、插件安裝

1). 安裝SSH插件
如果沒(méi)有安裝SSH插件的話,是不支持配置遠(yuǎn)程SSH的,這里可以去插件里面看下,是否安裝了。

2). 新增全局配置
環(huán)境配置, 管理Jenkins-->Configure System 找到 Publish over SSH,點(diǎn)擊新增,新增SSH Server,輸入Hostname,Username,Password,點(diǎn)擊Test Configuration,提示:Success ?代表SSH連通遠(yuǎn)端服務(wù)器,保存即可。

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

注:如果沒(méi)有勾選 Use password authentication, or use a different key這個(gè)選項(xiàng),點(diǎn)擊測(cè)試連接,會(huì)報(bào)錯(cuò):jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection

2、創(chuàng)建Maven項(xiàng)目

2.1、新建一個(gè)全新的項(xiàng)目

1)點(diǎn)擊【新建Item】

2)輸入任務(wù)名稱

3)選擇【構(gòu)建一個(gè)maven項(xiàng)目】

4)點(diǎn)擊【確定】,進(jìn)入配置頁(yè)面

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

2.2、拷貝已有項(xiàng)目

1)點(diǎn)擊【新建Item】

2)輸入任務(wù)名稱

3)復(fù)制輸入需要復(fù)制項(xiàng)目的名稱,可下拉快捷選擇

4)點(diǎn)擊【確定】,進(jìn)入配置頁(yè)面,此時(shí)配置頁(yè)面帶有復(fù)制的項(xiàng)目配置,根據(jù)本項(xiàng)目需要修改即可

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

3、項(xiàng)目配置

????????如果是新建任務(wù),則直接進(jìn)入配置頁(yè)面修改配置;如果是已有任務(wù),則右上角查找項(xiàng)目名稱,回車后進(jìn)入此項(xiàng)目空間,左側(cè)點(diǎn)擊【配置】按鈕,進(jìn)入配置頁(yè)面;或者是列表直接找到項(xiàng)目名稱,點(diǎn)擊項(xiàng)目名稱進(jìn)入此項(xiàng)目;

3.1 、General

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

(1)、描述

純文本,備注,項(xiàng)目簡(jiǎn)介、用途等

(2)、Discard old builds(丟棄舊的構(gòu)建)

配置build保留的次數(shù)與天數(shù);發(fā)布包保留次數(shù)、天數(shù)

Jenkins job執(zhí)行build后,會(huì)在服務(wù)器上留下build記錄及發(fā)布包,這些內(nèi)容會(huì)占用磁盤空間;默認(rèn)配置是不勾選Discard old builds的,此時(shí)默認(rèn)值為365,顯然這個(gè)值過(guò)大了;

Jenkins job在每次build結(jié)束后(無(wú)論成功還是失?。紩?huì)自動(dòng)執(zhí)行Discard old builds,釋放磁盤空間;

因此根據(jù)磁盤空間來(lái)設(shè)置選項(xiàng),如果磁盤空間充足,則均為15,如果磁盤空間不足,則均設(shè)置為3;當(dāng)然也可根據(jù)實(shí)際需求來(lái)設(shè)置;

如圖配置也可:

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

?其中“發(fā)布包保留天數(shù)”和“發(fā)布包最大保留”,這兩個(gè)選項(xiàng)是通過(guò) Discard old builds右下角【高級(jí)】按鈕控制顯示的;

(3)、Gitee 鏈接

默認(rèn)值為:https://gitee.com

3.2、源碼管理

1、選擇代碼管理,比如git

2、輸入地址

3、添加憑據(jù),建議以ssh登錄

4、指定分支,默認(rèn)*/master

配置源碼倉(cāng)庫(kù)地址及賬號(hào),下圖為Gitee示例

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

Repository URL:svn、Gitee代碼地址;

Credentials(證書):已配置直接點(diǎn)擊下拉框選擇;第一次增加時(shí)需要點(diǎn)擊【添加】按鈕進(jìn)行添加

3.3、構(gòu)建觸發(fā)器

????????當(dāng)某個(gè)事件被觸發(fā)時(shí),自動(dòng)重新構(gòu)建項(xiàng)目;非必須,一般都通過(guò)build now手動(dòng)執(zhí)行構(gòu)建;當(dāng)然了解了觸發(fā)器,可以根據(jù)觸發(fā)器形式打造理想中的構(gòu)建形式。

1)Build whenever a SNAPSHOT dependency is built

當(dāng)job依賴的快照版本被build時(shí),執(zhí)行本job;即當(dāng)代碼有更新時(shí)就構(gòu)建項(xiàng)目

2)Build after other projects are built

作用:配置關(guān)注的項(xiàng)目,當(dāng)關(guān)注的項(xiàng)目構(gòu)建后,構(gòu)建本項(xiàng)目

3)Build periodically:隔一段時(shí)間定時(shí)build一次,不管版本庫(kù)代碼是否發(fā)生變化

日程表規(guī)則:

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.

第一個(gè)是代表分鐘 H 表示隨機(jī)?
第二個(gè)是代表小時(shí) 9-15/4 9點(diǎn)到下午三點(diǎn)期間的每隔4個(gè)小時(shí)?
第三個(gè)是代表天 * 任意一天?
第四個(gè)是代表月份 1-11 表示1到11月份?
第五個(gè)是代表星期 1-5 表示工作日

沒(méi)有用到 H 隨機(jī)的話,不要加括號(hào)?
H(9-18) 9點(diǎn)到18點(diǎn) 中隨機(jī)的一個(gè)點(diǎn)?
eg:?
* * * * * 表示任何一個(gè)時(shí)間段,同一個(gè)時(shí)間都可能會(huì)觸發(fā)執(zhí)行。不建議使用?
H/30 * * * * 表示每天每隔 30分鐘構(gòu)建一次?
H 4-19/3 * * * 表示,一天的凌晨點(diǎn)到下午7點(diǎn),每隔3個(gè)小時(shí)構(gòu)建一次?
* * 3-5 * * 表示,每個(gè)月的3號(hào),4號(hào),5號(hào) 都會(huì)被構(gòu)建,具體時(shí)間未知?
* * * * 1-5 表示,工作日時(shí)會(huì)構(gòu)建,具體時(shí)間未知?
H/30 8-19/3 1-28 1-11 1-5 表示 在1月到11月中的1號(hào)-28號(hào),每個(gè)工作日,早晨的8點(diǎn)到下午7點(diǎn)每隔3.5個(gè)小時(shí)會(huì)觸發(fā)構(gòu)建(個(gè)人懷疑此條規(guī)則說(shuō)錯(cuò)了,H/30意思就是每30分鐘一次)

H */12 * * * 表示每12小時(shí)會(huì)觸發(fā)構(gòu)建

H/30 11-13/1 21-28 4-5 1-5? 經(jīng)驗(yàn)證,為11:20到13:50,每隔30分鐘構(gòu)建一次(11:20、11:50、12:20、12:50、13:20、13:50),而且是到13點(diǎn)50才結(jié)束

個(gè)人配置如圖 ,每天中午12點(diǎn)定時(shí)構(gòu)建一次:

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

4)Poll SCM:輪詢構(gòu)建

指定一段時(shí)間間隔去掃描代碼倉(cāng)庫(kù)的代碼是否有變更,如果有,則出發(fā)項(xiàng)目構(gòu)建;

日程表的規(guī)則應(yīng)該是遵循上述規(guī)則,未驗(yàn)證;

3.4、構(gòu)建環(huán)境

非必須,但建議勾選Delete workspace before build starts。勾選此選項(xiàng)后,每次打包前jenkins會(huì)先刪除工作區(qū)代碼再打包;如果不勾選此選項(xiàng),開發(fā)人員刪除某些代碼文件,但是此文件仍然在工作區(qū)保留,打包時(shí)仍然會(huì)帶著打包,有可能會(huì)通過(guò)打包引起的bug;

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

?每次重新構(gòu)建時(shí)都會(huì)從配置的源碼地址取到最新的項(xiàng)目代碼放到工作區(qū)中,但是Jenkins只會(huì)將代碼放到工作區(qū)中,而不執(zhí)行刪除操作,同樣的文件會(huì)覆蓋掉,但如果新的代碼中有些文件已經(jīng)刪除了,則在工作區(qū)中還會(huì)保留。所此需要構(gòu)造這個(gè)選項(xiàng)。

3.5、Pre Steps

構(gòu)建前操作,一般不需要配置

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

3.6、Build

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

1)Root POM

對(duì)應(yīng)的pom.xml路徑,此路徑是相對(duì)于workspace的相對(duì)路徑;注意:是相對(duì)位置,如果該文件不存在,會(huì)有紅色字提示。?

2)Goals and options

打包命令,不要加mvn,默認(rèn)前綴會(huì)加;一般為空即可,如果有需要再添加內(nèi)容;可添加maven命令。

clean package -Dmaven.test.skip=true(清除以前的包,重新打包,并跳過(guò)測(cè)試)?

3)【高級(jí)】

點(diǎn)擊高級(jí)按鈕,配置maven,若在安裝Jenkins后已對(duì)系統(tǒng)配置maven,則無(wú)需每次新建項(xiàng)目再次配置maven

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

3.7、Pre Steps

構(gòu)建后操作:如果需要實(shí)現(xiàn)自動(dòng)構(gòu)建自動(dòng)發(fā)布,則需要配置,或在Post Steps選項(xiàng)下配置

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

Execute Windows Batch command:執(zhí)行Windows批處理命令

Execute shell:執(zhí)行shell腳本

Invoke Ant:調(diào)用Ant腳本

Invoke Gradle script:調(diào)用Gradle腳本

Invoke top-level Maven targets:調(diào)用Maven項(xiàng)目等

Send files or execute commands over SSH:通過(guò)SSH發(fā)送文件或執(zhí)行命令

Set build status to 'pending'on GitHub commit:構(gòu)建狀態(tài)設(shè)置為“等待我們GitHub提交

3.8、構(gòu)建環(huán)境

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

Send files or execute commands over SSH after the build runs:這個(gè)表示在構(gòu)建之后,執(zhí)行向指定遠(yuǎn)程服務(wù)器發(fā)送文件或者在遠(yuǎn)程服務(wù)器執(zhí)行腳本命令

add timestamps to the Console Output 表示構(gòu)建控制臺(tái)的日志加上時(shí)間戳?

3.9、Post Steps???

配置Send files or execute commands over SSH,實(shí)現(xiàn)遠(yuǎn)程將自動(dòng)構(gòu)建的jar包上傳至遠(yuǎn)程服務(wù)器

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

1)run only if build succeeds

只有在構(gòu)建成功后再運(yùn)行下面步驟,

2)send files or execute commands over ssh

表示在構(gòu)建之后,執(zhí)行向指定遠(yuǎn)程服務(wù)器發(fā)送文件或者在遠(yuǎn)程服務(wù)器執(zhí)行腳本命令,點(diǎn)擊按鈕Add post-build step選擇添加

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

3)send files or execute commands over ssh?配置

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

點(diǎn)擊高級(jí)對(duì) 腳本相關(guān)信息配置

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

SSH ?Server Name:要拷貝的遠(yuǎn)程服務(wù)器,下拉選擇系統(tǒng)配置選項(xiàng)配置好的服務(wù)器
Transfer Set source files:相對(duì)于工作空間的相對(duì)目錄,例如:包在tatget/*.jar,可以填寫多個(gè),默認(rèn)用逗號(hào)分隔,輸入**/*表示所有目錄下的所有文件
remove prefix:去除前綴,傳到遠(yuǎn)程服務(wù)器上去掉此路徑,比如:為空的話,傳到服務(wù)器的地址為 上面全局配的 目錄起始位置,例如此處:target/? ?
remote directory: 遠(yuǎn)程服務(wù)器包存放位置,相對(duì)于系統(tǒng)配置中配置SSH服務(wù)目錄下路徑,例如SSH服務(wù)器配置路徑為: /home,這里配置為test/,文件上傳后目錄為:/home/test

exec command: 在文件傳輸完成后,在遠(yuǎn)程服務(wù)器執(zhí)行的腳本命令(拷貝文件后,需要在服務(wù)器上要執(zhí)行的腳本/命令)需要在部署服務(wù)器對(duì)應(yīng)目錄下新建shell腳本

exec timeout:腳本執(zhí)行超時(shí)時(shí)間,盡量大一些,不然腳本沒(méi)執(zhí)行完任務(wù)就結(jié)束了
exec in pty:執(zhí)行腳本后超時(shí)會(huì)自動(dòng)退出

示例:

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

Source files選項(xiàng)是相對(duì)于project workspace的,輸入**/*表示所有目錄下的所有文件
Remote directory選項(xiàng)是配置的遠(yuǎn)程服務(wù)器相對(duì)路徑(或者服務(wù)器的絕對(duì)路徑?)
Exec command選項(xiàng)是在文件傳輸完成后,在遠(yuǎn)程服務(wù)器執(zhí)行的腳本命令。

Name: 遠(yuǎn)程服務(wù)器IP

Source files:target/*.jar

Remove prefix: target/

Remote directory: /dyt

?exec command文件傳輸后執(zhí)行命令,啟動(dòng)服務(wù)

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 "運(yùn)行構(gòu)建的jar包"
nohup java -jar  $dir$project >/dev/null 2>&1 &

控制臺(tái)輸出查看結(jié)果:

Jenkins + Gitee + Maven 自動(dòng)化部署 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(清除以前的包,重新打包,并跳過(guò)測(cè)試)
[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 "運(yùn)行構(gòu)建的jar包"
nohup java -jar  $dir$project >/dev/null 2>&1 &] ...
SSH: EXEC: connected
鏂囦歡鐩綍
bash: 絎? 8 琛岋細(xì)kill: 錛氭棤鏁堢殑淇″彿澹版槑
榪愯鏋勫緩鐨刯ar鍖?
SSH: EXEC: completed after 213 ms
SSH: Disconnecting configuration [dytCS] ...
SSH: Transferred 1 file(s)
Finished: SUCCESS

??備注:高級(jí)選項(xiàng)勾選:Verbose output in console,代表可以在控制臺(tái)看到執(zhí)行結(jié)果,不勾選雖然執(zhí)行成功了那么看不到。
windows的服務(wù)器執(zhí)行文件,python文件或者其他,需要使用execute windows batch commend? 。liunx 下使用execute shell

4、配置郵件通知服務(wù)

4.1、安裝Email Extension Plugin插件

安裝路徑:Manage Jenkins>Manage Plugins

4.2、獲取郵箱授權(quán)碼

測(cè)試用的QQ郵箱,確保POP3/SMTP/IMAP服務(wù)是開啟的,點(diǎn)擊生成授權(quán)碼,發(fā)送短信獲取授權(quán)碼,用于后續(xù)配置登錄憑證

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

4.3、配置Jenkins郵箱通知

Manage Jenkins > Configure System下,Jenkins Location中配置系統(tǒng)管理員的郵箱地址

?Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

?拖動(dòng)頁(yè)面右側(cè)滑塊到頁(yè)面最底部,接著進(jìn)行郵件通知的相關(guān)配置

4.4、配置郵件通知?

SMTP服務(wù)器:使用郵箱對(duì)應(yīng)的服務(wù)器地址

用戶默認(rèn)郵件后綴:可不填,填了,代表其他創(chuàng)建的用戶賬號(hào)的默認(rèn)郵箱后綴為填入的郵箱后綴

SMTP用戶名/密碼:發(fā)送郵件的賬號(hào),密碼為獲取的授權(quán)碼

SMTP端口:SMTP對(duì)應(yīng)服務(wù)器對(duì)應(yīng)端口

通過(guò)發(fā)送測(cè)試郵件測(cè)試配置

Test e-mail recipient :接收測(cè)試郵件郵箱地址

Test configuration:測(cè)試配置,點(diǎn)擊Test configuration按鈕,為測(cè)試賬號(hào)發(fā)送郵件,成功提示?Email was successfully sent

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

?測(cè)試時(shí)若出現(xiàn)?javax.mail.MessagingException: Got bad greeting from SMTP host: smtp.163.com, port: 465, response: [EOF]?錯(cuò)誤,則查看使用的端口是否需要使用SSL協(xié)議?

在配置上以上郵件通知并測(cè)試通過(guò),測(cè)試郵箱成功收到測(cè)試郵件后,還需對(duì)Extended E-mail Notification模塊進(jìn)行配置(這個(gè)模塊是用于發(fā)送構(gòu)建后的報(bào)告郵件,不進(jìn)行配置的話,在之后的項(xiàng)目構(gòu)建中,你就會(huì)看到構(gòu)建成功,郵件也發(fā)送成功,但是郵箱就是沒(méi)有收到郵件)

4.5、Extended E-mail Notification配置

1)、配置SMTP服務(wù)器地址及其端口

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

常用郵箱 SMTP服務(wù)器地址及端口 POP3服務(wù)器地址及端口
QQ郵箱 smtp.qq.com(端口:25) pop.qq.com(端口:110)
QQ企業(yè)郵箱 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 自動(dòng)化部署 Spring Boot

?密碼重新獲取授權(quán)碼

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

??憑證配置操作如圖

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

?Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

?注意:SMTP Username中的賬號(hào)一定要與系統(tǒng)管理員的郵箱賬號(hào)保持一致

3)、配置郵件通知標(biāo)題、內(nèi)容

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

?由于郵件使用了Html編寫,所以配置Default Content Type選擇類型HTML (text/html),附郵件內(nèi)容代碼

<!DOCTYPE html>    
<html>    
<head>    
<meta charset="UTF-8">    
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次構(gòu)建日志</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>    
            本郵件由系統(tǒng)自動(dòng)發(fā)出,無(wú)需回復(fù)!<br/>            
            各位同事,大家好,以下為${PROJECT_NAME }項(xiàng)目構(gòu)建信息</br> 
            <td><font color="#CC0000">構(gòu)建結(jié)果 - ${BUILD_STATUS}</font></td>   
        </tr>    
        <tr>    
            <td><br />    
            <b><font color="#0B610B">構(gòu)建信息</font></b>    
            <hr size="2" width="100%" align="center" /></td>    
        </tr>    
        <tr>    
            <td>    
                <ul>    
                    <li>項(xiàng)目名稱 : ${PROJECT_NAME}</li>    
                    <li>構(gòu)建編號(hào) : 第${BUILD_NUMBER}次構(gòu)建</li>    
                    <li>觸發(fā)原因: ${CAUSE}</li>    
                    <li>構(gòu)建狀態(tài): ${BUILD_STATUS}</li>    
                    <li>構(gòu)建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                    <li>構(gòu)建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                    <li>工作目錄 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    
                    <li>項(xiàng)目  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>
詳細(xì)提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
 
            </td>    
        </tr>    
    </table>    
</body>    
</html>

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

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

?Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

4.5、項(xiàng)目配置

打開項(xiàng)目設(shè)置,找到選項(xiàng)卡構(gòu)建后操作,?點(diǎn)擊增加購(gòu)進(jìn)后操作步驟,選擇Editable Email Notification。

Project Recipient List:填入收件人的郵箱賬號(hào),有多個(gè)賬號(hào)時(shí)使用逗號(hào)隔開

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

?Attachments:讀取路徑是主目錄下的workspace文件夾?,所以想要將報(bào)告以附件的形式發(fā)送的話,就需要在build文件中將報(bào)告的生成路徑更改為項(xiàng)目的工作空間,

針對(duì)單個(gè)文件,直接填寫相對(duì)路徑;多個(gè)文件需要作為附件進(jìn)行發(fā)送,可在Attachments中填入report/*.txt,如有多個(gè)文件的話,路徑之間用英文逗號(hào)隔開,例如,項(xiàng)目根文件夾下有個(gè)文件1.txt,2.txt

Attach Build Log:選擇是否發(fā)送構(gòu)建日志

Content Type:內(nèi)容類型,一般為html

Default Content:郵件內(nèi)容,默認(rèn)為系統(tǒng)設(shè)置

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot

注:其他文件類型同理,路徑同理,不支持發(fā)送文件夾,只能發(fā)送文件,一定要發(fā)送文件夾的話,就將其壓縮成一個(gè)壓縮文件

4.6、郵件效果

Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot鳴謝:Jenkins配置郵件通知服務(wù),完整教程(含發(fā)送成功無(wú)法接收郵件處理方案)_不定時(shí)總結(jié)的那啥的博客-CSDN博客_jenkins 郵件通知?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-475794.html

到了這里,關(guān)于Jenkins + Gitee + Maven 自動(dòng)化部署 Spring Boot的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Jenkins結(jié)合gitee自動(dòng)化部署SpringBoot項(xiàng)目

    Jenkins結(jié)合gitee自動(dòng)化部署SpringBoot項(xiàng)目

    安裝教程 Gitee Plugin 源碼管理 填寫源碼地址 注意: 請(qǐng)確保genkins所在的服務(wù)器有權(quán)限git拉取遠(yuǎn)程倉(cāng)庫(kù)代碼,如果不可以請(qǐng)參考ssh配置 centos 配置ssh拉取遠(yuǎn)程git代碼 源碼管理 構(gòu)建觸發(fā)器 1.勾選Gitee webhook 觸發(fā)構(gòu)建 2.生成webhook密碼 構(gòu)建觸發(fā)器 ? 3.在gitee項(xiàng)目管理中配置webhook git

    2024年02月08日
    瀏覽(38)
  • Jenkins自動(dòng)化構(gòu)建部署前端項(xiàng)目(Linux+gitee)

    Jenkins自動(dòng)化構(gòu)建部署前端項(xiàng)目(Linux+gitee)

    本文講述了Jenkins自動(dòng)化構(gòu)建部署前端項(xiàng)目,內(nèi)容包括Linux系統(tǒng)安裝Jenkins、如何配置構(gòu)建項(xiàng)目并發(fā)布到目標(biāo)服務(wù)器。 因公司系統(tǒng)項(xiàng)目眾多,前端項(xiàng)目打包麻煩,項(xiàng)目代碼管理混亂,因此需要gitee+Jenkins做自動(dòng)化構(gòu)建,優(yōu)化項(xiàng)目打包流程及代碼管理。 本次教程可實(shí)現(xiàn)最簡(jiǎn)單的自動(dòng)

    2024年02月03日
    瀏覽(27)
  • 前端項(xiàng)目打包和自動(dòng)化部署(jenkins+gitee+nginx)

    前端項(xiàng)目打包和自動(dòng)化部署(jenkins+gitee+nginx)

    1. 傳統(tǒng)的開發(fā)模式 在傳統(tǒng)的開發(fā)模式中,開發(fā)的整個(gè)過(guò)程是按部就班就行: 但是這種模式存在很大的弊端: 工作的不協(xié)調(diào):開發(fā)人員在開發(fā)階段,測(cè)試和運(yùn)維人員其實(shí)是處于等待的狀態(tài)。等到測(cè)試階段,開發(fā)人員等待測(cè)試反饋bug,也會(huì)處于等待狀態(tài)。 線上bug的隱患:項(xiàng)目準(zhǔn)

    2024年02月01日
    瀏覽(25)
  • Jenkins+Maven+Gitlab+Tomcat 自動(dòng)化構(gòu)建打包,部署

    Jenkins+Maven+Gitlab+Tomcat 自動(dòng)化構(gòu)建打包,部署

    1、安裝服務(wù) Jenkins工具、環(huán)境、插件配置 全局變量配置 Manage JenkinstoolsJDK 安裝 安裝插件 Deploy to container 安裝此插件,才能將打好的包部署到tomcat上 ? ? 配置國(guó)內(nèi)mvn源 創(chuàng)建maven項(xiàng)目 1 ?2 ? 3? ? 4? ? 5? ? 6? ? 7? ? 8? ? ?9 10 ?

    2024年02月05日
    瀏覽(33)
  • docker+jenkins+gitee+shell 自動(dòng)化部署微服務(wù)(基于若依)【詳細(xì)完整版】

    docker+jenkins+gitee+shell 自動(dòng)化部署微服務(wù)(基于若依)【詳細(xì)完整版】

    提示:需基本熟悉docker命令、shell腳本、微服務(wù)部署、git命令、服務(wù)器基本命令、node、maven 服務(wù)器環(huán)境:Linux-EulerOS(華為自主研發(fā)服務(wù)器系統(tǒng),與CentOS基本類似) 安裝組件:docker20.10.19、openjdk1.8.0_191、maven3.8.6、git2.33.0、node16.17.1、npm9.1.2、jenkinsci/blueocean、docker-compose 遠(yuǎn)程工

    2023年04月11日
    瀏覽(24)
  • 詳細(xì)步驟記錄:持續(xù)集成Jenkins自動(dòng)化部署一個(gè)Maven項(xiàng)目

    詳細(xì)步驟記錄:持續(xù)集成Jenkins自動(dòng)化部署一個(gè)Maven項(xiàng)目

    提示:本教程基于CentOS Linux 7系統(tǒng)下進(jìn)行 1. 下載安裝jdk11 官網(wǎng)下載地址: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包 官網(wǎng)下載地址:https://mirrors.tuna.tsing

    2024年02月04日
    瀏覽(62)
  • 2023全網(wǎng)最細(xì)最全保姆級(jí)gitlab+Jenkins+maven自動(dòng)化部署springboot項(xiàng)目教程

    2023全網(wǎng)最細(xì)最全保姆級(jí)gitlab+Jenkins+maven自動(dòng)化部署springboot項(xiàng)目教程

    如果沒(méi)有Linux基礎(chǔ)請(qǐng)仔細(xì)看好每一個(gè)步驟,避免出錯(cuò),從0到1帶你搭建自動(dòng)化部署環(huán)境,包括服務(wù)器安裝,自動(dòng)化部署所需各類軟件安裝配置,詳細(xì)貼出每一步,不斷步驟,讓你一次搭建部署完成,希望這篇文章能給大家?guī)?lái)一定的幫助,話不多說(shuō)開始整 2.0 CentOs安裝 2.0.1 下載VM虛擬機(jī) 我直

    2024年02月08日
    瀏覽(62)
  • Jenkins + Docker 一鍵自動(dòng)化部署 Spring Boot 項(xiàng)目,步驟齊全,少走坑路!

    Jenkins + Docker 一鍵自動(dòng)化部署 Spring Boot 項(xiàng)目,步驟齊全,少走坑路!

    本文章實(shí)現(xiàn)最簡(jiǎn)單全面的Jenkins+docker+springboot 一鍵自動(dòng)部署項(xiàng)目,步驟齊全,少走坑路。 環(huán)境 :centos7+git(gitee) 簡(jiǎn)述實(shí)現(xiàn)步驟:在docker安裝jenkins,配置jenkins基本信息,利用Dockerfile和shell腳本實(shí)現(xiàn)項(xiàng)目自動(dòng)拉取打包并運(yùn)行。 推薦一個(gè)開源免費(fèi)的 Spring Boot 實(shí)戰(zhàn)項(xiàng)目: https://git

    2024年02月08日
    瀏覽(58)
  • Jenkins+maven+testng+htmlreport單元自動(dòng)化測(cè)試

    Jenkins+maven+testng+htmlreport單元自動(dòng)化測(cè)試

    為了可以在jenkins自動(dòng)化運(yùn)行單元測(cè)試的代碼,所以使用maven+testng的技術(shù)結(jié)合,達(dá)到手動(dòng)或者定時(shí)去執(zhí)行單元測(cè)試的代碼,以便提高人工運(yùn)行的自動(dòng)化的效率。單元通過(guò)該方案也可以套用在httpclient框架去執(zhí)行測(cè)試web api接口的自動(dòng)化測(cè)試,原理是一致的。 安裝開發(fā)工具:eclip

    2024年02月10日
    瀏覽(22)
  • Jmeter+Maven+jenkins+eclipse搭建自動(dòng)化測(cè)試平臺(tái)

    Jmeter+Maven+jenkins+eclipse搭建自動(dòng)化測(cè)試平臺(tái)

    背景: 首先用jmeter錄制或者書寫性能測(cè)試的腳本,用maven添加相關(guān)依賴,把性能測(cè)試的代碼提交到github,在jenkins配置git下載性能測(cè)試的代碼,配置運(yùn)行腳本和測(cè)試報(bào)告,配置運(yùn)行失敗自動(dòng)發(fā)郵件通知,這樣一來(lái)性能測(cè)試的job配置完成。接著,把性能測(cè)試的job配置成開發(fā)job的下

    2024年01月22日
    瀏覽(35)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包