Jenkins中maven的作用--構建項目(三)


本文主要根據Jenkins上的日志來繼續說明構建項目的過程,上文我們已經講到構建一個測試環境或單獨終端的過程,詳情可以了解上篇文章

一、背景介紹

首先看下SVN代碼的倉庫的結構:

        代碼倉庫里有一個文件夾,可以隨便取名,文件夾中可以放置很多單獨的項目,每個項目下有branch,trunk,demand三個文件。在branch下面可以有pc端,微信端,

APP端,后台等終端,從下面的結構中,可以看出每個終端的代碼中有資源文件夾src(類的定義,配置文件,說明文檔,jar包等)和pom文件。

 

二、構建trunk項目

       當發布正式環境時需先先構建trunk,然后發布正式項目,因此此時需要注意,如果有項目功能沒有寫完,不能直接構建trunk,此時構建trunk會將倉庫下所有項目修改或更新的部分全部更新到Jenkins工作目錄中。

1、Jenkins中的SVN地址:

構建正式環境:需要構建trunk,將代碼倉庫中所有變動的代碼和Jenkins工作目錄中的代碼對比,然后更新Jenkins工作目錄的代碼
3
.4版本trunk地址 https://101.21.101.111:443/svn/代碼倉庫/branches/qianrongyiV3.4(項目下有web,APP,WeChat等終端) 3.4版本正式項目地址: https://101.21.101.111:443/svn/代碼倉庫/branches/qianrongyiV3.4/qian-web(pom文件)(單獨web終端)

構建預發布環境:不需要構建trunk,只需要單獨構建項目即可,將單獨項目變動部分更新。 3.4版本預發布環境: https://101.21.101.111:443/svn/代碼倉庫/branches/qianrongyiV3.4/qian-app

 2、構建3.4版本trunk的過程:

  1 Started by user 3798233333@qq.com
  2 Building in workspace /bat/jenkins/workspace/3.4-pro-trunk     ##在Jenkins工作目錄中更新3.4-pro-trunk,如果沒有這個文件夾,則創建。
  3 Updating https://101.21.101.111:443/svn/代碼倉庫/branches/qianrongyiV3.4 at revision '2018-02-08T17:49:41.934 +0800'
  4 下面內容表示更新Jenkins工作目錄中項目的內容(根據SVN倉庫中的文件與Jenkins工作目錄中的文件對比),U表示更新;A表示添加;D表示刪除。
  5 U(update)qianee-common/src/main/java/com/test/qianee/constants/Constants.java(全路徑為:/bat/jenkins/workspace/3.4-pro-trunk/qianee-common/src/main/java/com/test/qianee/constants/Constants.java;下面路徑相同)
  6 A(add)  qianee-service/src/main/java/com/test/qianee/service/StatisticPlatformIncomeServiceImpl.java
  7 U         qianee-service/src/main/java/com/test/qianee/service/CapitalmanagerService.java
  8 A         qianee-service/src/main/java/com/test/qianee/service/ContentAdvertisementsLinksImple.java
  9 D(delete)  qianee-service/src/main/java/com/test/qianee/service/impl/ContentAdvertisementsLinksImple.java
 10 D         qianee-service/src/main/java/com/test/qianee/service/impl/StatisticPlatformIncomeServiceImpl.java
 11 
 12 At revision 23920
 13 
 14 Parsing POMs      ##開始分析pom文件
 15 Established TCP socket on 59933
 16 [3.4-pro-trunk] $ java -cp /bat/jenkins/plugins/maven-plugin/WEB-INF/lib/maven32-agent-1.7.jar:/bat/maven/boot/plexus-classworlds-2.5.2.jar:/bat/maven/conf/logging jenkins.maven3.agent.Maven32Main /bat/maven /bat/webapps/jenkins/WEB-INF/lib/remoting-2.59.jar /bat/jenkins/plugins/maven-plugin/WEB-INF/lib/maven32-interceptor-1.7.jar /bat/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.7.jar 58833   ##指明了執行這個class文件所需要的所有類的包路徑-即系統類加載器的路徑
 17 <===[JENKINS REMOTING CAPACITY]===>channel started
 18 Executing Maven:  -B -f /bat/jenkins/workspace/3.4-pro-trunk/pom.xml clean install
 19 [INFO] Scanning for projects... 
 20 [INFO] ------------------------------------------------------------------------
 21 [INFO] Reactor Build Order:   ##反應堆(Reactor)是一個包含了所有需要構建模塊的抽象概念;模塊會被包含到反應堆;反應堆中所有模塊的構建順序
 22 [INFO] 
 23 [INFO] qianee
 24 [INFO] qianee-wechat-service
 25 [INFO] qianee-talent-wechat-service                                                                        
 26 
 27 項目二:
 28 
 29 [INFO] ------------------------------------------------------------------------
 30 [INFO] Building qianee-wechat-service 3.4-SNAPSHOT
 31 [INFO] ------------------------------------------------------------------------
 32 [INFO] ##加載maven清理插件,清除Jenkins工作目錄下項目的target已編譯文件
 33 [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ qianee-wechat-service ---
 34 [INFO] Deleting /bat/jenkins/workspace/3.4-pro-trunk/qianee-wechat-service/target
 35 [INFO] ##為了使項目結構更為清晰,Maven區別對待Java代碼文件和資源文件,maven-compiler-plugin用來編譯Java代碼,maven-resources-plugin則用來處理資源文件。
 36 
 37 默認的主資源文件目錄是src/main/resources,很多用戶會需要添加額外的資源文件目錄,這個時候就可以通過配置maven-resources-plugin來實現。
 38 [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ qianee-wechat-service ---
 39 [INFO] Using 'UTF-8' encoding to copy filtered resources.
 40 [INFO] Copying 0 resource
 41 [INFO] 
 42 [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ qianee-wechat-service ---
 43 [INFO] Changes detected - recompiling the module!
 44 [INFO] Compiling 29 source files to /bat/jenkins/workspace/3.4-pro-trunk/qianee-wechat-service/target/classes
 45 [INFO] 
 46 [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ qianee-wechat-service ---
 47 [INFO] Using 'UTF-8' encoding to copy filtered resources.
 48 [INFO] Copying 0 resource
 49 [INFO] 
 50 [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ qianee-wechat-service ---
 51 [INFO] Nothing to compile - all classes are up to date
 52 [INFO] 
 53 [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ qianee-wechat-service ---
 54 [JENKINS] Recording test results
 55 [INFO] 
 56 [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ qianee-wechat-service ---
 57 [INFO] Building jar: /bat/jenkins/workspace/3.4-pro-trunk/qianee-wechat-service/target/qianee-wechat-service.jar
 58 [INFO] 
 59 [INFO] --- maven-install-plugin:2.4:install (default-install) @ qianee-wechat-service ---
 60 [INFO] Installing /bat/jenkins/workspace/3.4-pro-trunk/qianee-wechat-service/target/qianee-wechat-service.jar to /root/.m2/repository/com/test/qianee/qianee-wechat-service/3.4-SNAPSHOT/qianee-wechat-service-3.4-SNAPSHOT.jar
 61 [INFO] Installing /bat/jenkins/workspace/3.4-pro-trunk/qianee-wechat-service/pom.xml to /root/.m2/repository/com/test/qianee/qianee-wechat-service/3.4-SNAPSHOT/qianee-wechat-service-3.4-SNAPSHOT.pom
 62 
 63 
 64 -------------------------------------------------------
 65  T E S T S
 66 -------------------------------------------------------
 67 Running com.test.qianee.app.WelcomeApiControllerTest    ##運行app登錄控制類測試
 68 2018-02-08 17-52-12 [main] [org.springframework.test.context.web.WebTestContextBootstrapper] [INFO] - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@36ecb8fa, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@6f644141, org.springframework.test.context.support.DependencyInjectionTestExecutionListener@1ef84b89, org.springframework.test.context.support.DirtiesContextTestExecutionListener@3f271f41]
 69 2018-02-08 17-52-12 [main] [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] [INFO] - Loading XML bean definitions from class path resource [TestContext.xml]
 70 ........(省略數行)......
 71 ==============loaded properties files=================
 72 file [/bat/jenkins/workspace/3.4-pro-trunk/qianee-app/target/classes/application-sms.properties]
 73 .......(省略數行).........
 74 Results :   ##幾個類的測試結果
 75 
 76 Tests in error: 
 77   test(com.test.qianee.app.UserApiControllerTest): Result{status=2, msg='該手機號尚未注冊,請重新輸入或注冊', bat=null, msgMap=null}
 78 。。。。。。(省略數行)。。。。。
 79 
 80 Tests run: 15, Failures: 0, Errors: 5, Skipped: 0
 81 
 82 [ERROR] There are test failures.
 83 
 84 Please refer to /bat/jenkins/workspace/3.4-pro-trunk/qianee-app/target/surefire-reports for the individual test results.
 85 [JENKINS] Recording test results
 86 [INFO]   ##APP項目打包
 87 [INFO] --- maven-war-plugin:2.2:war (default-war) @ qianee-app ---
 88 [INFO] Packaging webapp
 89 [INFO] Assembling webapp [qianee-app] in [/bat/jenkins/workspace/3.4-pro-trunk/qianee-app/target/qianee-app]
 90 [INFO] Processing war project
 91 [INFO] Copying webapp resources [/bat/jenkins/workspace/3.4-pro-trunk/qianee-app/src/main/webapp]
 92 [INFO] Webapp assembled in [505 msecs]
 93 [INFO] Building war: /bat/jenkins/workspace/3.4-pro-trunk/qianee-app/target/qianee-app.war
 94 [INFO] WEB-INF/web.xml already added, skipping
 95 [INFO] 
 96 [INFO] --- maven-install-plugin:2.4:install (default-install) @ qianee-app ---
 97 [INFO] Installing /bat/jenkins/workspace/3.4-pro-trunk/qianee-app/target/qianee-app.war to /root/.m2/repository/com/test/qianee/qianee-app/3.4-SNAPSHOT/qianee-app-3.4-SNAPSHOT.war
 98 [INFO] Installing /bat/jenkins/workspace/3.4-pro-trunk/qianee-app/pom.xml to /root/.m2/repository/com/test/qianee/qianee-app/3.4-SNAPSHOT/qianee-app-3.4-SNAPSHOT.pom
 99 [INFO] 
100  。。。。。。(省略數行)。。。。。                                                                       、
101 [INFO] Reactor(反應器) Summary:  
102 [INFO] 
103 [INFO] qianee-web ......................................... SUCCESS [ 16.531 s]
104 [INFO] qianee-wechat-service .............................. SUCCESS [  2.053 s]
105 [INFO] qianee-talent-wechat-service ....................... SUCCESS [  1.889 s]
106 
107 [INFO] ------------------------------------------------------------------------
108 [INFO] BUILD SUCCESS
109 [INFO] ------------------------------------------------------------------------
110 [INFO] Total time: 03:30 min
111 [INFO] Finished at: 2018-02-08T17:53:26+08:00
112 [INFO] Final Memory: 76M/557M
113 [INFO] ---------------------------項目存檔---------------------------------------------
114 項目一存檔:(將Jenkins工作目錄中的war包和pom.xml文件存檔備份到用戶家目錄下)
115 [JENKINS] Archiving(存檔,歸檔) /bat/jenkins/workspace/3.4-pro-trunk/qianee-web/pom.xml to com.test.qianee/qianee-web/3.4-SNAPSHOT/qianee-web-3.4-SNAPSHOT.pom
116 [JENKINS] Archiving /bat/jenkins/workspace/3.4-pro-trunk/qianee-web/target/qianee-web.war to com.test.qianee/qianee-web/3.4-SNAPSHOT/qianee-web-3.4-SNAPSHOT.war
117 項目二存檔:
118 [JENKINS] Archiving /bat/jenkins/workspace/3.4-pro-trunk/qianee-talent-wechat-service/pom.xml to com.test.qianee/qianee-talent-wechat-service/3.4-SNAPSHOT/qianee-talent-wechat-service-3.4-SNAPSHOT.pom
119 [JENKINS] Archiving /bat/jenkins/workspace/3.4-pro-trunk/qianee-talent-wechat-service/target/qianee-talent-wechat-service.jar to com.test.qianee/qianee-talent-wechat-service/3.4-SNAPSHOT/qianee-talent-wechat-service-3.4-SNAPSHOT.jar
120 項目三存檔:
121 [JENKINS] Archiving /bat/jenkins/workspace/3.4-pro-trunk/qianee-wechat-service/pom.xml to com.test.qianee/qianee-wechat-service/3.4-SNAPSHOT/qianee-wechat-service-3.4-SNAPSHOT.pom
122 [JENKINS] Archiving /bat/jenkins/workspace/3.4-pro-trunk/qianee-wechat-service/target/qianee-wechat-service.jar to com.test.qianee/qianee-wechat-service/3.4-SNAPSHOT/qianee-wechat-service-3.4-SNAPSHOT.jar
123  。。。。。。(省略數行)。。。。。
124 channel stopped
125 Finished: UNSTABLE
View Code

 3、Jenkins上trunk配置:

部分1、Maven project name 欄設置

主要填寫Maven project name(工程名)、Descript(工程描述信息)

部分2、Source Code Management 欄設置

輸入源碼的獲取地址,由於我的插件中演示的是svn,那么如下輸入:

Repository depth: Jenkins在執行checkout、update代碼時,所取出的代碼的范圍。默認我們選擇infinity就可以。

Check-out Strategy:svn第一次更新代碼和以后同步代碼的步驟,和策略。默認選項一般就可以。

部分3、Build Triggers 欄設置

默認選項為:

Build whenever a SNAPSHOT dependency is buil 意思就是svn更新觸發構建

這里建議選擇:

Poll SCM 相當於新建一個計划任務,定時檢查版本庫,發現有新的提交就觸發構建。其配置的意思和linux的crontab差不多,如10分鍾構建一次

 

部分4、Build 欄設置

如果對mvn構建參數有需求,或者需要設置pom.xml的文件位置,可以在這里設置。

默認: pom.xml的文件就在工程目錄下。

部分5、完成

點 save 完成對一個一個工程的設置

4、構建trunk的結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM