1. 程式人生 > >系統優化(一)Maven打包同一個jar有不同的:版本號+時間戳(解決思路)

系統優化(一)Maven打包同一個jar有不同的:版本號+時間戳(解決思路)

trac net 排除 構建 多個 可能 sof alt height

解決:maven倉庫的ear裏面有非常多個同樣的jar(僅僅是包括不同的:版本號+時間戳)

問題描寫敘述: 發現ear裏面有非常多個同樣的jar,僅僅是包括不同的:版本號+時間戳,例如以下圖所看到的:

(比如:itoo-basic-api有非常多同樣的jar,僅僅是包括不同的:版本號+時間戳)

技術分享

解決思路

用權限的itoo-authority-usergroup-ear模塊進行測試

1.懷疑是:maven的坐標。時間戳的問題

keyword:

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) 後在Jinkensserver中。檢查itoo-authority-usergroup-ear中的jar

10)技術分享

11)技術分享

12)Perfect!


總結

歸根究竟,還是由於maven的插件配置的問題。

非常多時候,對於工具的使用,僅限於初步使用。這次在優化期間,收獲還是頗多的!


系統優化(一)Maven打包同一個jar有不同的:版本號+時間戳(解決思路)