title: Jenkins自動集成小記
Jenkins是用來自動構建任務的,也許你還不知道什么叫自動構建任務,它的意思是可以針對某個任務進行自動化,比如你開發的某個軟件,每次寫完代碼提交到github
之后,你可以設置讓Jenkins自動進行打包構建發布包或者進行Units測試,發布報告,不用你每次手工在IDE
中去Build,尤其是當打包非常繁瑣的時候,用自動化構建可以極大的提高工作效率。
前言
公司是同事使用Jenkins
做的自動化構建,非常方便,每次提交代碼,自動檢測打包是否成功,然后發送郵件通知,因為我們集成了findingbugs
插件,在打包前還會對代碼進行findingbus
檢索,告訴你findingbus
的狀態,還會生成release的發布包,非常之方便。
wement.io
這個項目我想多人協作開發,自然想到了Jenkins,讓大家能夠配合的非常的舒服,昨天折騰了三小時,搞定了Jenkins
,其中包括怎么創建一個任務,怎么設置github
,和github
的項目掛鈎,怎么設置郵件通知。
安裝Jenkins
直接去Jenkins
官網下載war
包,我這里是直接部署在阿里雲的centos7上的,然后用scp xxx.war root@yourip:/home
直接從本地拷貝到雲服務器上,拷貝之后直接用java -jar xxx.war
就可以運行成功了,如果你期望退出命令行還不關閉Jenkins
的話,就用命令nohug java -jar xxx.war
來運行包,java進程自動在后台運行了,關閉命令行窗口也不會退出程序,這樣你的Jenkins
就運行了,默認端口監聽在8080,如果你也是用的雲服務器,請確保你的8080端口是允許訪問的。
當然,要運行Jenkins
,你需要安裝Java環境,如果你的代碼倉庫用git
的話請安裝git,分別命令如下:
yum install java
yum install git
還沒有完,Jenkins運行成功了,你再在瀏覽器上打開yourip:8080
跟隨Jenkins
安裝向導,用默認提示安裝完成即可,接下來就是創建任務了。
創建一個任務
選擇第一性,構建一個自由風格的軟件項目
然后保存即可,任務創建完成。但是如果你的項目是私有項目,你需要在你的服務器上生成ssh,然后貼到你的github上,這樣做的目的是然github信任你的這個服務器,同時要注意你的Jenkins控制台,有可能要你輸入ssh的證書密碼。
郵件通知
一般來說這個時候右鍵通知是沒問題的,但是我今天發現我提交代碼之后,任務並沒有自動構建,然后看Jenkins
打的log是這樣的:
22:23:55 [WARNING] mvn dependency:tree -Ddetail=true and the above output.
22:23:55 [WARNING] See http://maven.apache.org/plugins/maven-shade-plugin/
22:23:56 [INFO] ------------------------------------------------------------------------
22:23:56 [INFO] BUILD SUCCESS
22:23:56 [INFO] ------------------------------------------------------------------------
22:23:56 [INFO] Total time: 10.112s
22:23:56 [INFO] Finished at: Thu Aug 10 22:23:56 CST 2017
22:23:56 [INFO] Final Memory: 20M/59M
22:23:56 [INFO] ------------------------------------------------------------------------
22:23:56 Archiving artifacts
22:23:56 Email was triggered for: Always
22:23:56 Sending email for trigger: Always
22:23:56 Not sending mail to unregistered user chengming@testin.cn because your SCM claimed this was associated with a user ID ‘chengming' which your security realm does not recognize; you may need changes in your SCM plugin
22:23:56 An attempt to send an e-mail to empty list of recipients, ignored.
22:23:56 Finished: SUCCESS
意思是構建成功了,但是發送郵件發現提交代碼的用戶名是chengming
而不是我在Jenkins
中設置的cmlanche
,然后Jenkins自動忽略了發送郵件的這個行為。
然后我在我的sourcetree
中把提交代碼的用戶換回了cmlanche
,任務自動構建,郵件發送成功!
Jenkins分享(一)小結
Jenkins
是一個非常方便的工具,免費開源,推薦大家都來學習,都折騰下,對你以后大有好處。我其實也是剛剛學這個,知道的還不多,還需要花很多時間去折騰,有更新的收獲我會慢慢分享出來。
歡迎加入我的Java棧群
:518914410,討論有關Java的一切技術。