故障描述:
公司搭建了一個新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國內映象:同公司保持一致。
- achetype-catalog.xml記錄了所有archetype構建資訊,maven通過archetype外掛構建專案骨架時會遠端訪問頁面,通過maven的-X引數可以證明這一點。