上传jar包至maven私服

上传jar包至maven私服

问题场景描述:

在使用springboot+dubbo+zk的架构中,经常会有服务需要调用其他服务中的接口,接口调用一般是两种方式:
第一种直接使用http方式调用,这种大部分场景都适用,但是会有数据丢失情况,不是特别稳定。
第二种就是调用dubbo接口,也就是常说的rpc调用,这时就需要引入对方封装的接口包,用以从dubbo容器中获取到这个接口的实现,这时就需要接口提供方将封装的接口包上传到maven私服,然后使用方直接在pom文件中配置依赖即可引用了。

如何上传jar至maven私服:

方式一:如果使用的是IDEA作开发,可以直接使用maven中的deploy命令(install会将jar传至本地仓库)就可以上传至私服,如下图:
在这里插入图片描述

私服上传后的jar展示:
在这里插入图片描述
注:为什么上传的jar包上有时间戳?
因为上传的jar都是SNAPSHOT的,SNAPSHOT代表临时版本,如果是RELEASE的jar则不会有时间戳,这个无需在意。

方式二:在cmd中执行deploy命令效果也是一样的,但是需要先配置MAVEN_HOME环境变量,该变量不配置在cmd是不能使用mvn命令的,检查是否配置了MAVEN_HOME环境变量可以直接在cmd中输入mvn -version如下图:
在这里插入图片描述
执行命令:
mvn deploy:deploy-file -DgroupId=sgcc.supplier.api -DartifactId=sgcc.supplier.api-Dversion=1.0 -Dpackaging=jar-Dfile=F:\maven_supplier_new\sgcc\supplier\api\sgcc.supplier.api\1.0.0-SNAPSHOT\sgcc.supplier.api-1.0.0-SNAPSHOT.jar -Durl=http://172.16.68.146:8181/nexus/content/repositories/snapshots/ -DrepositoryId=esgcc-snapshots

DgroupId和DartifactId构成了该jar包在pom.xml的坐标,项目就是依靠这两个属性定位。自己起名字也行。

Dfile表示需要上传的jar包的绝对路径。
Durl私服上仓库的位置,打开nexus——>repositories菜单,可以看到该路径。
DrepositoryId服务器的表示id,在nexus的configuration可以看到。
Dversion版本信息,怎样得到一个jar包准确的版本呢?
解压该包,会发现一个叫MANIFEST.MF的文件,Manifest-Version该字段代表版本信息。

未完待续。。。

注意:
如果碰到了该问题:The goal you specified requires a project to execute but there is no POM in this directory,大概率是命令中有多余空格,或者文件夹命名包含空格等,再检查下命令。

猜你喜欢

转载自blog.csdn.net/m0_46897923/article/details/113401148
今日推荐