系統最佳化(一)Maven打包同一個jar有不同的:版本+時間戳記(解決思路)
解決:maven倉庫的ear裡面有很多個相同的jar(只是包含不同的:版本+時間戳記)
問題描述: 發現ear裡面有很多個相同的jar,只是包含不同的:版本+時間戳記,如所示:
(例如:itoo-basic-api有很多相同的jar,只是包含不同的:版本+時間戳記)
解決思路
用許可權的itoo-authority-usergroup-ear模組進行測試
1.懷疑是:maven的座標,時間戳記的問題
關鍵字:
maven snapshot
maven war中同一個jar有很多不同版本
maven 本地倉庫 同一個jar有很多不同的版本
maven 從nexus上更新下來有很多版本的jar
....
2.懷疑是:nexus的問題
懷疑nexus上ear的版本不是最新的。
故,在eclipse的ear的pom.xml中,右鍵Run As ---Maven build ----輸入”deploy”到nexus上。
後Jinkens上構建(省略)。
後查看:D:\itoo-maven-3.2.3\repository\com\tgb\***\0.0.1-SNAPSHOT中的jar是否包含很多個相同的jar,只是包含不同的:版本+時間戳記?
(答案:很多個相同的jar,只是包含不同的:版本+時間戳記)
3.懷疑是:Jinkens中配置問題
4.懷疑是:maven本地倉庫的問題
首先,刪除本地的maven倉庫中的tgb檔案夾。
後刪除:jenkins9中tmp_authority中的itoo-authority-usergroup-ear.ear
後Jinkens上構建(省略)。
後查看:D:\itoo-maven-3.2.3\repository\com\tgb\***\0.0.1-SNAPSHOT中的是否有:很多個相同的jar,只是包含不同的:版本+時間戳記?
(答案:是。Ear中有很多個相同的jar,只是包含不同的:版本+時間戳記)
5.懷疑是:maven中jar包依賴衝突的問題
(參照此圖)
先排除jar包衝突
後提交SVN代碼
後Jinkens上構建(省略)。
後查看:D:\itoo-maven-3.2.3\repository\com\tgb\***\0.0.1-SNAPSHOT中的jar是否包含:很多個相同的jar,只是包含不同的:版本+時間戳記?
(答案:是。Ear中有:很多個相同的jar,只是包含不同的:版本+時間戳記)
6.懷疑是:ear的pom檔案中maven外掛程式配置的問題
a) 首先將ear的pom.xml中添加中的代碼
b) 後提交SVN代碼
c) 此時構建分為兩種方式:
i.第一種:ear目錄下,cmd命令中,輸入:mvn clean install。
1. 後查看:D:\itoo-maven-3.2.3\repository\com\tgb\***\0.0.1-SNAPSHOT中的jar是否包含:很多個相同的jar,只是包含不同的:版本+時間戳記?
2.
3. (答案:某一功能的jar只有一個!且沒有:版本+時間戳記)
ii. 第二種:通過Jinkens重新構建(省略)。
1. 後查看:D:\itoo-maven-3.2.3\repository\com\tgb\***\0.0.1-SNAPSHOT中的jar是否包含:很多個相同的jar,只是包含不同的:版本+時間戳記?
2.
3. (答案:jar包個數減少,但是仍然含有:版本+時間戳記)
4. 幾乎所有的jar都是兩份:一個是***-0.0.1-SNAPSHOT.jar 和***-0.0.1-20150602.091811-14.jar
5. 猜測:此次配置是有效果的,但是可能受到該ear上一級的影響!
6. 故,測試itoo-tool(見下)
最終方案:修改itoo-root中的pom.xml中maven外掛程式配置
1) 用eclipse從SVN中下載itoo-root
2) 後對itoo-root中的pom.xml檔案做兩部修改:
a) 第一步:刪除原有關於maven外掛程式的配置
b)
c) 第二步:添加新的maven外掛程式的配置
d)
3) 後將修改後的pom.xml檔案提交到SVN
4) 後itoo-root的pom.xml中右鍵RunAs ---Maven build 中輸入“deploy”即可。
5) 後在Jinkens中的itoo模組的itoo-root,右鍵自動構建
6)
7) 後依次構建:core--web--ear
8)
9) 後在Jinkens伺服器中,檢查itoo-authority-usergroup-ear中的jar
10)
11)
12)Perfect!
總結
歸根到底,還是因為maven的外掛程式配置的問題。
很多時候,對於工具的使用,僅限於初步使用。這次在最佳化期間,收穫還是頗多的!