maven-編譯速度優化

YatHo發表於2017-07-25

故障描述:

  公司搭建了一個新jenkins持續整合環境,jenkins構建job時間越來越長。

原因分析及解決:

  •   系統CPU限制:判斷依據,構建中檢視日誌 tail -f /var/log/messages 是否有 “Package power limit normal”
    •   如果是mac機器:系統偏好設定>擴充程式>所有,反選所有你不需要的擴充。然後進入系統偏好設定>節能,在更長續航和更高效能中勾選後者,完成後重啟計算機
  •   設定java記憶體:-Xms800m -Xmx800m -XX:MaxNewSize=512m  -XX:MaxPermSize=512m
    • 如果需要是堆記憶體不夠,則設定最大堆大小-Xmx,如果是持久代溢位,比如出現PermGen space異常,則設定-XX:MaxPermSize即可
    •  set MAVEN_OPTS= -Xms800m -Xmx800m -XX:MaxNewSize=512m  -XX:MaxPermSize=512m
  •   增加跳過測試程式碼的編譯命令: -Dmaven.test.skip=true 
  •   指明多執行緒進行編譯:-Dmaven.compile.fork=true
  •   增加CPU核心引數:-T 1C 
    • Maven是3.×以上版本支援
  •   遠端倉庫慢:增加頻寬
    •   該問題只會在第一次同步遠端jar的時候較多
  •   achetype-catalog.xml檔案的訪問問題:
    •   achetype-catalog.xml記錄了所有archetype構建資訊,maven通過archetype外掛構建專案骨架時會遠端訪問頁面,通過maven的-X引數可以證明這一點。
      • [DEBUG] -- end configuration --  
        [INFO] Generating project in Batch mode  
        [DEBUG] Searching for remote catalog: http://repo1.maven.apache.org/maven2/archetype-catalog.xml   
    • 網路慢的情況下訪問該檔案非常消耗時間,翻閱Maven官方文件可以找到能夠將檔案儲存到本地,成為一種解決思路。
      •   http://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-catalog.html   
      • 1)準備archetype-catalog.xml檔案
          方式1:通過瀏覽器檢視http://repo1.maven.org/maven2/archetype-catalog.xml頁原始碼,複製到本地,命名為archetype-catalog.xml。
          方式2:通過命令列  curl http://repo1.maven.org/maven2/archetype-catalog.xml > archetype-catalog.xml
        2)將上述檔案放置到maven的預設路徑下
            注意,這不是指的安裝路徑,而是mvn執行時預設的存放repository的路徑,一般在使用者根目錄下的一個隱藏目錄,~/.m2。如果做過更改,可以在maven的設定檔案中檢視
        具體在哪個位置,設定檔案在maven安裝目錄/config/settings.xml中。 3)在構建時,在archetype:generate後加上 -DarchetypeCatalog=local引數。
      •   

         

         

         

          
    • 調整倉庫順序:settings中  把 “本地倉庫” 和 “Maven Central” 倉庫放到前兩位 其他也按用到的多少排列
    •   maven國內映象:同公司保持一致。

相關文章