发布第三方jar包到Maven私服

2020年7月15日 0 条评论 196 次阅读 2 人点赞

与部分厂家业务合作时经常需要使用对方提供的第三方jar包调取定制化接口或者实现进行业务开发,jar包的管理与部署只靠人工维护是很困难的,尤其是团队合作的情况下每个人在本地单独维护一份lib,最后的结果往往是依赖管理杂乱无章。一般公司都会有自己的Maven私服,把第三方jar包上传到私服上团队成员根据需要添加pom依赖不仅可以缩短工程初始化时间,依赖管理也会相对容易、规范。将第三方依赖推向公司私服一共分两个步骤:

问题背景

公司Maven私服部署的是Artifactory,开发完的utils、tools或者其他工具包可以直接发布或者通过网页直接上传到私服,但是这次接收的第三方包比较复杂:

整个包并没有生成第三方包的信息,只有阿里云依赖包的信息。上传到私服以后识别出来的GAV坐标也是错误的:

起初的想法是在第三方jar包外面包装一个中间层并发布到私服,这样做的好处是即使有一天第三方jar包更新了我们仅需重新发布一次即可,下游依赖方无感知只要刷新一次maven就能完成更新。

基于上述想法编写如下pom:

发布过程中不论使用shade还是assambly都无法将scope为system的第三方依赖打入到最外层jar中。正常的私服发布过程使用的都是GAV坐标,为了实现上述想法需要将第三方jar包先部署到本地maven仓库目录生成pom文件,然后在外层jar包发布到私服时使用shade插件打包成shade jar。

本地安装

进入第三方依赖jar包所在目录通过mvn install进行部署:

进入到/Users/w3sun/.m2/repository/com/corpname/profile/partner-utils/1.0.0/目录可以发现已经生成pom文件,将提取的GVA坐标加入到发布中间层jar依赖的pom中:

可以看到External Libraries下已经加入了第三方jar包依赖。

私服发布

将中间层jar包profile-feature发布到私服时需要maven shade插件以便生成shade jar:

添加完插件执行deploy进行发布:

发布成功切maven私服可查,多人合作进行业务开发时对于公共依赖只需要引入中间层jar包的GAV坐标即可。

 

重剑无锋,大巧不工。

文章评论(0)