解决:maven仓库的ear里面有非常多个同样的jar(仅仅是包括不同的:版本号+时间戳)
问题描写叙述: 发现ear里面有非常多个同样的jar,仅仅是包括不同的:版本号+时间戳,例如以下图所看到的:
(比如:itoo-basic-api有非常多同样的jar,仅仅是包括不同的:版本号+时间戳)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" width="700" height="600">
解决思路
用权限的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
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" width="700" height="500">
后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中加入截图中的代码
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
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的插件配置的问题。
非常多时候,对于工具的使用,仅限于初步使用。这次在优化期间,收获还是颇多的!