主題:持續(xù)集成:Jenkins+Git+Maven
- 持續(xù)集成是什么,解決什么問題?
1.1 解放勞動(dòng)力
一步完成拉取代碼到部署完成
1.2 避免人為失誤
避免人為修改文件等的操作失誤
1.3 提高效率
一般手動(dòng)部署應(yīng)用,修改配置文件等操作基本上在30分鐘以上眷射,目前工作就是手動(dòng)部署梗醇,深有體會(huì),有時(shí)因?yàn)椴僮魇д`可能要排查問題甚至可能要重新部署淋袖,所以部署完整個(gè)項(xiàng)目30分鐘遠(yuǎn)遠(yuǎn)不夠
1.4 質(zhì)量持續(xù)反饋
定時(shí)構(gòu)建
1.5 質(zhì)量保障
構(gòu)建中觸發(fā)監(jiān)控體系,自動(dòng)化測(cè)試锯梁,反饋當(dāng)前版本質(zhì)量即碗。---監(jiān)控體系? - 知識(shí)體系
Linux + Git + Jenkins + Maven + JDK - 實(shí)戰(zhàn)
1). Jenkins安裝
2). 權(quán)限設(shè)置
設(shè)置權(quán)限陌凳,默認(rèn)沒有權(quán)限剥懒,按一下步驟設(shè)置權(quán)限,默認(rèn)允許用戶注冊(cè)未選中合敦,授權(quán)管理為“登錄用戶可以做任何事“初橘。更改權(quán)限后一定要添加自己的賬號(hào),并給自己添加全部權(quán)限充岛,匿名賬戶權(quán)限全部取消保檐,否則不登陸也可進(jìn)行操作,通過(guò)添加用戶/用戶組將個(gè)人添加崔梗,保存后重新登錄
3). 插件安裝
根據(jù)具體的項(xiàng)目需求安裝插件夜只,我安裝Jenkins時(shí)默認(rèn)安裝了插件,后面又補(bǔ)裝了以下插件不一定都用得上:
4). 系統(tǒng)設(shè)置以及Global Tool Configuration
系統(tǒng)設(shè)置
主目錄:Jenkins的workspace所在地址蒜魄,拉取遠(yuǎn)程代碼到該地址
添加ssh server:
name 自己定義扔亥,hostname--遠(yuǎn)程服務(wù)器IP场躯,username--登陸的用戶名,Remote Directory--遠(yuǎn)程目錄旅挤,password--登陸用戶的密碼踢关,這里remote directory建議只添加/,測(cè)試下來(lái)發(fā)現(xiàn)job中也有這個(gè)路徑粘茄,并且job中添加的路徑是在該全局變量基礎(chǔ)上的签舞,因此根據(jù)不同的job添加具體路徑會(huì)更好
Global Tool Configuration
添加JDK,Git柒瓣,Maven在遠(yuǎn)程服務(wù)器的地址
5). 新建job
打包形式和開發(fā)溝通
新建maven job儒搭,保存后進(jìn)入配置頁(yè)面
如下圖,啟用項(xiàng)目安全選中嘹朗,設(shè)置用戶對(duì)該job的操作權(quán)限
源碼管理根據(jù)需要選擇师妙,測(cè)試項(xiàng)目為GitHub上搜索到的開源的maven項(xiàng)目诵肛,可選分支
Build設(shè)置屹培,maven根據(jù)pom.xml進(jìn)行打包,這里指定pom.xml的 路徑(該路徑為源碼中pom.xml的路徑)怔檩,第二個(gè)指定打包命令褪秀,只進(jìn)行簡(jiǎn)單的打包則只需clean install
設(shè)置構(gòu)建后操作,使用ssh server選用send bulid artifacts over SSH薛训,并添加以下內(nèi)容
source files :源文件路徑媒吗,可以用通配符匹配,具體匹配規(guī)則可參考提示中給出的網(wǎng)址
remove prefix:刪除前綴目錄乙埃,提示中舉例--如果源文件路徑為target/deployment/images// 闸英,而你只想要images//的內(nèi)容,那么設(shè)置該值為target/deployment介袜,則在遠(yuǎn)程目錄上只會(huì)創(chuàng)建images目錄及以后的內(nèi)容甫何,否則會(huì)創(chuàng)建全部文件夾
Remote directory:遠(yuǎn)程目錄,不添加時(shí)默認(rèn)使用全局變量
Exec command:執(zhí)行的shell命令遇伞,可添加腳本
保存配置并執(zhí)行構(gòu)建辙喂,查看控制臺(tái)信息,如下則打包成功
注: maven打包成功后鸠珠,打包的文件都會(huì)放在源碼pom.xml同路徑下的target目錄