问题:
自己写的分布式锁sdk包,上传到nexus私服后,然后在使用demo中,通过maven依赖从nexus下载分布式锁sdk包,发现下载的包有问题。分布式锁sdk包中引用的jar包没有下载下来。
通过网上查找,知其原因:之前上传sdk到nexus私服时,上传方式有问题。
上传方式:
- nexus上传界面:
上传方式一:
1-2-3-4-5:直接上传
是否要勾选 “Generate a POM file with these coordinates”这个选项?
如果不勾选,上传成功后,其他项目配置好依赖包的groupId、artifactId和version后,是可以从私服下载到该jar包,但是无法自动下载关联依赖,也就是说,假如手动上传的jar,在自己的pom中声明了其他jar的依赖,这些信息无法被依赖了该jar的项目自动获取。
如果勾选了,上传成功后,只会生成一个简单的pom.xml文件,sdk包里面的关联依赖,还是无法被引用。
总结:
此方式适用于自己的sdk包里面没有任何其它的依赖。“Generate a POM file with these coordinates”选项可勾选可不勾选
上传方式二:
1-2-3:上传成功
上传jar包的同时,把项目的pom.xml也上传上去。
总结:
此方式适用于自己的sdk包里面还有其它jar包依赖,必须用此方法。否则项目从nexus私服拉下此sdk包后,却不能包sdk包里面的依赖拉下来,无法使用
上传方式三:
通过maven配置,直接通过maven deploy上传到私服
- 在sdk的pom文件中添加配置
点击查看代码
<project>
<distributionManagement>
<repository>
<id>nexus</id>
<name>nexus</name>
<url>http://ip:8081/repository/maven-releases/</url>
</repository>
</distributionManagement>
</project>
点击查看代码
<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
命令上传到私服:
在项目的目录下,执行命令:
mvn clean deploy
参考:
- https://segmentfault.com/a/1190000042072832?utm_source=sf-similar-article
- https://blog.csdn.net/sinat_37729104/article/details/119791003
- http://c.biancheng.net/nexus/what-is-nexus.html