背景:
华为OBS-sdk包,因华为OBS(对象存储)提供了sdk包但是没有上传到中央仓库,想要使用sdk方式对接华为OBS,就需要将sdk包发布到本地仓库使得每个项目都能轻松使用,使用起来更加优雅。
在开发时,遇到第三方jar包依赖没有添加到maven中央仓库中时,需要手动将jar包直接发布到私有中央仓库中,也就是release仓库中
使用下面得maven命令发布:
mvn deploy:deploy-file -DgroupId=com.jamesmurty.utils -DartifactId=java-xmlbuilder -Dversion=1.1 -Dpackaging=jar -Dfile=D:\java-xmlbuilder-1.1.jar -Durl=http://10.31.**.**:8081/repository/maven-releases/ -DrepositoryId=releases
示例:
步骤:
1.下载华为OBS-SDK jar包到本地电脑
sdk官方下载路径:https://support.huaweicloud.com/sdk-java-devg-obs/zh-cn_topic_0073679956.html
2.测试使用3.1.2版本有系统兼容性问题,建议使用3.1.1版本
esdk-obs-java-3.1.1就是对应的sdk包
java-xmlbuilder-1.1也是私有包
所以要正常使用这个sdk包需要将这两个jar发布到release仓库中
2.分别打开jar中的pom文件查看jar包maven组织结构信息
3.根据maven组织结构信息编写maven发布脚本如下
mvn deploy:deploy-file -DgroupId=com.jamesmurty.utils -DartifactId=java-xmlbuilder -Dversion=1.1 -Dpackaging=jar -Dfile=D:\java-xmlbuilder-1.1.jar -Durl=http://10.31.**.**:8081/repository/maven-releases/ -DrepositoryId=releases
DgroupId:定义了项目属于哪个组的信息、对应pom文件中的<groupId>标签中的信息 如:<groupId>com.jamesmurty.utils</groupId>
DartifactId:artifactId 当前maven项目在组中唯一的ID 对应pom文件中的<artifactId>标签中的信息 如:
<artifactId>java-xmlbuilder</artifactId>
Dversion:jar包版本号 对应pom文件中的 <version>标签中的信息如<version>1.1</version>
Dfile:对应jar包名称 对应jar包的在本地电脑上的绝对路径 如:D:\java-xmlbuilder-1.1.jar
Durl:对应企业创建的私有中央仓库(release仓库)路径 如:http://10.31.**.**:8081/repository/maven-releases/
DrepositoryId:私有中央仓库id名称 如:releases
结果如图即发布私有仓库成功
为避免maven版本问题 建议参数值用双引号括起来
mvn deploy:deploy-file -DgroupId="com.pdd.service" -DartifactId="pop-sdk" -Dversion="1.9.1" -Dpackaging="jar" -Dfile="D:\ChromeCoreDownloads\pop-sdk-1.9.1-all.jar" -Durl="http://nexus.xyb2b.com.cn/repository/maven-releases/" -DrepositoryId="maven-releases"