實現(xiàn)步驟
安裝包jenkins
自己百度吧
jenkins配置
系統(tǒng)管理
一郊闯、全局安全配置
- 允許用戶操作
二、全局工具配置
* Maven Configuration
* Default setting provider
* 選擇Setting file in filesystem
* file path 通過 echo $MAVEN_HOME獲得贪庙,但是后面要加conf/setting.xml
* Default Global setting provider 和上面的一樣
* 注意:
* 指定maven的setting.xml文件的位置(idea工具中也會配置這個地址)
* 注意:不是自己本機 蜘犁,是liunx服務(wù)器中的位置
* JDK
* 點新增JDK。起一個名字止邮,可以隨便起这橙,但是要有值
* 不要自動安裝
* echo $JAVA_HOME獲得
* MAVEN
* name起個名字
* 不自動安裝
* 值可以通過 echo $MAVEN_HOME獲得
* Git
* 起個名字
* 添加cmd/git.exe的地址
三、插件管理
* deploy to web container
* git plugin
jenkins上創(chuàng)建任務(wù)
創(chuàng)建一個自由風(fēng)格的軟件項目
源碼管理:用于檢出源碼
git导披,添加git項目的下載路徑
- 配置構(gòu)建
1. Invoke top-level Maven targets
2. Maven Version:填寫上面的Maven配置名稱
3. Goals :填寫 【clean install】
- 點擊立即構(gòu)建
1. 觀察構(gòu)建日志
2. 成功后屈扎,可以再工作區(qū)中看到下載下來的代碼
3. 工作區(qū)中的target文件夾中放置的是構(gòu)建的結(jié)果和打包的結(jié)果
4. jenkins的構(gòu)建成功率是用天氣圖標(biāo)來表示的
配置部署相關(guān)的配置
在創(chuàng)建的項目中,點擊【構(gòu)建后操作】撩匕,用于處理war包鹰晨,進(jìn)行部署
選擇 【Deploy warlear to a container】,沒有就去安裝插件
這里填寫的路徑是以【工作區(qū)】為根目錄的止毕,(上面的截圖就是工作區(qū)目錄下的文件)
在WAR/EAR file中 填寫【target/war包的名字】
-
如何獲取war包的名字
在Idea的項目中pom.xml模蜡,右鍵—>Run as —>maven build
在打開的頁面中 填寫 Goals一欄
填寫package,進(jìn)行打包
在項目的target目錄下扁凛,查看打出來的war包名字即可
在WAR/EAR file中 填寫【target/war包的名字】
context path 是將來通過瀏覽器輸入地址欄哩牍,來訪問這個war包的項目的名字。如果用報名令漂,就太長了,所以要根據(jù)項目名字在這里填寫一下丸边。
-
Contains:容器叠必。這里選擇Tomcat7.X這種類似的
Credentials :添加tomcat的用戶名和密碼
在tomcat的conf文件中 username和password
tomcatUrl :tomcat坐在地址的url
配置好上述以后,在構(gòu)建完畢后妹窖,就會把war包放在tomcat下面纬朝。
上述步驟結(jié)束后,手動構(gòu)建就能把包部署到tomcat上了骄呼。
接下來共苛,如何實現(xiàn)提交代碼就能自動觸發(fā)部署呢? 即鉤子操作
配置【構(gòu)建觸發(fā)器】
-
觸發(fā)遠(yuǎn)程構(gòu)建:格式參考下面的提示蜓萄。
- 意思是按照這地址進(jìn)行訪問隅茎,就能觸發(fā)構(gòu)建。
-
接下來就要思考怎么在linux中訪問這個地址
編寫腳本 :curl -X post -v -u jenkins用戶名 -p jenkins密碼 “http://jenkins服務(wù)器地址:端口/jenkins/job/[項目名稱]/bulid?token=[身份驗證令牌] "
curl 用于linux系統(tǒng)發(fā)送http請求
全局安全配置中嫉沽,有個【防止跨站點請求偽造】辟犀,如果這里勾選了的話,訪問構(gòu)建這個jenkins任務(wù)就要填寫crumb值
如何獲取crumb值:admin用戶绸硕,查看User Id和API Token
寫完這個腳本后堂竟,在linux先執(zhí)行一下魂毁,看看能不能觸發(fā)jenkins構(gòu)建
-
【svn】把編寫的腳本,放在git的commit類腳本中出嘹,讓git在提交后席楚,就去執(zhí)行這個構(gòu)建地址
把git或者svn提供的tmpl文件,拷貝成腳本的形式: cp post-commit.tmpl post-commit.sh
把腳本放在post-commit.sh中
給post-commit.sh文件一個755的權(quán)限税稼,保障可以執(zhí)行
【git】git —>setting —> Web Hook —> add webhook
測試:提交代碼和自動構(gòu)建和成果更新
流程測試烦秩。
遇到的問題:
1、盡快部署的版本總是比提交的版本晚一個版本娶聘,提交第二次的時候才能拿到第一次的提交結(jié)果:
原因:服務(wù)器時間的影響
解決:在源碼管理中 URL地址后面加上@HEAD闻镶,代表下載最新的版本
jenkins和GitHub結(jié)合的要點
Jenkins要部署在外網(wǎng)上,內(nèi)網(wǎng)地址github是無法訪問的丸升∶或者github是公司的私服
jenkins所在的主機上需要安裝git,通過git從github上clone代碼
jenkins內(nèi)需要制定git的程序位置狡耻。(在JDK墩剖、Maven的設(shè)置那里)
git上使用repository的WebHook方式遠(yuǎn)程出發(fā)jenkins構(gòu)建。填個地址就行夷狰。
在jenkins內(nèi)關(guān)閉【防止跨站點請求偽造】