干貨!華為軟件開發云編譯構建之Maven

      網友投稿 1002 2025-03-31

      一.Maven介紹

      Maven是一個項目管理和整合的工具。Maven為開發者提供了一套完整的構建生命周期框架。開發團隊基本不用花多少時間就能自動完成工程的基礎構建配置,因為Maven使用了一個標準的目錄結構和一個默認的構建生命周期。

      二.Maven用途

      Maven提供了幫助管理

      構建、文檔、報告、依賴、SCMs、發布、分發的方法。可以方便的編譯代碼、進行依賴管理、管理二進制庫等等。Maven的好處在于可以將項目過程規范化、自動化、高效化以及強大的可擴展性利用Maven自身及其插件還可以獲得代碼檢查報告、單元測試覆蓋率、實現持續集成等等。

      三.Maven配置

      1. 新建構建任務

      首先在華為軟件開發云中新建構建任務(見圖1)。

      圖1 新建構建任務

      【maven-demo】是用戶自定義的構建任務名稱。

      【maven_demo】是已經創建的代碼倉庫,【master】是【maven_demo】中的一個分支。

      關于歸檔,需要注意兩點:

      1)

      歸檔的路徑,默認是【target/*.jar】,實際路徑取決于pom文件的路徑,我們先看【maven_demo】的工程目錄(見圖2),pom文件在【springmvc_demo】文件夾內,所以實際歸檔的路徑應該是【springmvc_demo/target/*.jar】。

      圖2 maven_demo倉庫目錄結構

      2) 歸檔類型,默認是jar,實際類型取決于pom文件中的設定(見圖3),pom文件中,打包類型是war,所以實際類型是war。

      圖3 springmvc_demo工程pom文件

      所以,歸檔中,應該寫入【springmvc_demo/target/*.war】。

      最后,成功創建構建任務。

      2. 編輯構建任務

      1) 基本信息

      創建任務時的配置是最基本的配置,用戶可以通過編輯任務配置更詳細的參數(見圖4)。

      圖4 構建任務編輯步驟

      在【基本信息】中,可以設定【執行參數配置】,也就是在執行構建的時候,進行參數配置。這些參數主要用于設置【包名】、【版本號】、【分組】和【打包類型】,在【配置構建】中會使用這些參數(見圖5)。

      圖5 執行參數配置

      【字符類型】就是字符串,【自定義類型】類似于枚舉,從定義好的值中選擇一個(見圖6,圖7)。

      圖6自定義類型參數編輯

      圖7 自定義類型參數值

      2) 代碼配置

      選擇要構建的代碼倉庫和分支(見圖8)。

      圖8 選擇一個代碼倉庫

      如果選擇【自動構建】,則只要倉庫代碼有變動,就會觸發編譯構建。

      根據項目需要,如果要構建多個倉庫,為了避免代碼沖突,需要指定存儲目錄(見圖9)。

      圖9 選擇多個代碼倉庫

      該存儲目錄由用戶自定義設置,在服務器中對應的路徑與倉庫的目錄結構有關。

      【maven_demo】的構建路徑如下圖:

      圖10 maven_deno倉庫的工作目錄

      【maven_demo2】的構建路徑如下圖:

      圖11 maven_deno2倉庫的工作目錄

      注意:倉庫【maven_demo2】的目錄結構與倉庫【maven_demo】的不同,前者的pom文件在倉庫的根目錄下,后者的pom文件在根目錄下的【springmvc_demo】目錄中。

      3) 構建配置

      構建環境選擇【Java】,構建類型選擇【Maven】。Maven的配置參數很多(見圖12)。

      圖12 maven參數配置

      【Maven版本】:目前只支持mvn3.3.1,之后會根據maven的版本升級而更新可選擇的版本號。

      【發布到私有庫】:默認不選是執行maven

      package,打包到本項目,一般是在項目target目錄下。如果勾選,則執行maven

      deploy,打包上傳到遠程倉庫,將軟件包發布至用戶私有maven release和maven snapsh ot倉庫,需要配置pom文件。

      【Maven參數】:默認是-U,在編譯的時候會下載snapsh ot倉庫的最新依賴包。如果有需要可以配置其他的參數(見圖13)。

      圖13 maven常用參數命令

      【POM文件】:如果pom文件在倉庫的根目錄下,則不用填寫,如果像倉庫【maven_demo】,pom文件不在根目錄下,需要指定pom文件的路徑【springmvc_demo/pom.xml】,如果在【代碼配置】中,指定了【存儲目錄】為test1,則需要要加上存儲目錄,即【test1/springmvc_demo/pom.xml】。

      【屬性】:即構建腳本需要的屬性。用命令行使用Maven的插件時,-D表示屬性的輸入。例如maven的版本管理,增加屬性如下(見圖14):

      #Maven 版本管理

      branchName=xxxx-100317 #分支中的名稱

      updateBranchVersions=false #是否更新分支的版本信息,默認為false

      updateWorkingCopyVersions=false #是否更新主干的版本信息,默認為true

      每個屬性中不能有空格,屬性之間用空格分開。

      圖14 maven屬性配置

      具體如何查找屬性請參考下面鏈接:

      http://www.cnblogs.com/EasonJim/p/6865150.html

      【JVM選項】: 在基于Maven管理的Java項目中,經常出現內存溢出的錯誤,這種情況下,需要進行JVM的參數設置更新,一般而言,都是根據內存溢出問題的不同,針對內存、permspace來進行調整和設置。比如增大PermGen區空間為128M,設置方法為

      set

      MAVEN_OPTS=-XX:MaxPermSize=128M,實際填寫【JVM選項】時,只寫入【-XX:MaxPermSize=128M】(見圖15),如果需要設置多個屬性,屬性之間用空格分隔。

      圖15 maven JVM選項配置

      純干貨!華為軟件開發云編譯構建之Maven

      JVM的具體參數請參考下面的鏈接:

      http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

      【編譯構建后】選擇【發布到編譯構建倉庫】(見圖16)

      圖16 編譯構建后參數配置

      這里,會定義【包名】、【版本號】、【文件路徑】、【分組】和【打包類型】,這里可以寫入固定的值,也可以使用在【基本信息】中定義的參數,這里使用的就是【基本信息】中定義的參數。方法是${參數名}。關于【文件路徑】,如果pom文件在倉庫的根目錄下,并且沒有指定【存儲目錄】,則【文件路徑】為【target/springmvc_demo.war】,如果指定了【存儲目錄】為test1,那么在【文件路徑】最前面應該加上存儲目錄,例如【test1/springmvc_demo/target/springmvc_demo.war】。

      如果同時構建多個倉庫,則需要再增加【執行Maven】和【發布到編譯構建倉庫】步驟(見圖17)。

      圖17 多倉庫編譯構建后參數配置

      4) 構建執行配置

      【構建結果】選擇【歸檔】,【用于歸檔的文件】默認就是全部包(見圖18)。具體路徑也是取決于pom文件的路徑,參考【構建配置】中的【文件路徑】。

      圖18 構建結果配置

      包的類型取決于pom文件中的定義。【不包含】是指不需要歸檔的包,如果有多個,每個包之間用空格分隔。

      如果選擇多個代碼倉庫,則需要增加【歸檔】(見圖19)。

      圖19 多倉庫構建結果配置

      5) 構建計劃配置

      【構建計劃】有【不定時】、【每日】和【每周】。

      【不定時】是指用戶手動構建,用戶不操作,就不會構建。

      【每日】是指每天定時構建,不需要用戶操作(見圖20)。

      圖20 每日構建計劃配置

      【每周】是指每周可以固定哪幾天定時構建,如周二,周四(見圖21),也不需要用戶操作。

      圖21 每周構建計劃配置

      【構建時長限制】是指一次構建最長時間限制,如果超過該時長還沒有構建完畢,則停止構建。

      四.Maven構建

      用戶執行【開始構建】,會彈出參數窗口(見圖22)。

      圖22 執行構建配置

      根據項目實際需求,填寫參數,這些參數是在【基本信息】中定義好的,然后開始【執行】,最后構建成功(見圖23)。

      圖23 構建成功

      五.小結

      maven不僅是構建工具,它還是依賴管理工具和項目管理工具,提供了中央倉庫,能夠幫我們自動下載構件。為了解決依賴的增多,版本不一致,版本沖突,依賴臃腫等問題,它通過一個坐標系統來精確地定位每一個構件。maven還為全世界的Java開發者提供了一個免費的中央倉庫,在其中幾乎可以找到任何的流行開源軟件。通過衍生工具(nexus),我們還能對其進行快速搜索。總之,maven構建會給你帶來很多的好處和驚喜。

      軟件開發云

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:店鋪數據分析軟件(店鋪數據分析工具
      下一篇:wps表格進行篩選后下拉數字排序不能順序遞增,始終都是1。不能變成1、2、3、4、5、6。
      相關文章
      少妇中文字幕乱码亚洲影视| 中文字幕专区在线亚洲| 成人亚洲网站www在线观看 | 亚洲乱码国产一区网址| 亚洲AV永久无码精品一福利 | 中文字幕亚洲综合久久菠萝蜜| 一级毛片直播亚洲| 亚洲av区一区二区三| 亚洲国产人成在线观看| 亚洲国产成人九九综合| 亚洲成aⅴ人片在线影院八| 亚洲国产成人精品久久| 亚洲字幕AV一区二区三区四区| 亚洲熟女综合色一区二区三区 | 亚洲一日韩欧美中文字幕在线| 亚洲日韩中文字幕无码一区| 亚洲成a人无码亚洲成www牛牛 | 亚洲色无码专区一区| 亚洲精品国产摄像头| 在线观看亚洲免费| 亚洲日本va午夜中文字幕久久| 久久久久亚洲精品无码网址| 亚洲乱亚洲乱妇无码麻豆| 亚洲av无码专区国产乱码在线观看| 国产亚洲成在线播放va| 亚洲黄片手机免费观看| 在线亚洲97se亚洲综合在线| 人人狠狠综合久久亚洲婷婷| 亚洲福利视频一区| 亚洲人成网站在线观看播放| 亚洲Av综合色区无码专区桃色| 亚洲视频免费在线观看| 亚洲人成电影网站| 亚洲欧美国产日韩av野草社区| 国产精品亚洲一区二区三区久久| 亚洲欧洲自拍拍偷精品 美利坚 | 亚洲精品无码成人AAA片| 亚洲天堂男人天堂| 亚洲六月丁香婷婷综合| 亚洲AV噜噜一区二区三区| 亚洲精品无码永久在线观看|