maven推送本地jar包到nexus仓库遇到的问题
场景:
今天使用jenkins打包镜像时,发现其中一个jar包私服仓库没有,本地是有的,因此遇到如何从本地向nexus仓库推送的问题(之前没有推过现在遇到一些坑特此记录一下)
问题:
如何正确地从本地向nexus仓库推送jar包
目标:
将本地的 latform-rulesengine-client 的jar包推送到nexus上
<dependency>
<groupId>com.gisquest.cloud</groupId>
<artifactId>platform-rulesengine-client</artifactId>
<version>1.0.7-YWDZ-SNAPSHOT</version>
</dependency>
网上搜索了解决方案:
-
mvn deploy:deploy-file
-
-DgroupId=com.gisquest.cloud
-
-DartifactId=platform-rulesengine-client
-
-Dversion=1.0.7-YWDZ-SNAPSHOT
-
-Dpackaging=jar
-
-Dfile=C:\Users\Administrator\Desktop\tui\platform-rulesengine-client-1.0.7-YWDZ-SNAPSHOT.jar
-
-Durl=http://192.168.11.70:8081/nexus/content/groups/public/
-
-DrepositoryId=nexus
注解:
-DgroupId 、-DartifactId、-Dversion分别和该包的坐标依赖相对应
-Dpackaging:表示准备推到nexus上包的类型
-Dfile :表示要从本地推到nexus上包的绝对路径(重要)
-Durl: 表示私服仓库的地址(重要)
-DrepositoryId:表示私服仓库对应的唯一id
我本地pom.xml的配置如下(maven中setting.xml文件中私服的url都是一样的):
-
<!-- 设定主仓库,按设定顺序进行查找。 -->
-
<repositories>
-
<repository>
-
<id>nexus</id>
-
<name>nexus</name>
-
<url>http://192.168.11.70:8081/nexus/content/groups/public/</url>
-
<releases>
-
<enabled>true</enabled>
-
</releases>
-
<snapshots>
-
<enabled>true</enabled>
-
</snapshots>
-
</repository>
-
</repositories>
按理说执行上面推动命令应该就可以了,但是执行后发现报错了提示如下错误400 Bad Request 路径找不到:
-
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
-
Caused by: org.eclipse.aether.deployment.DeploymentException: Failed to deploy artifacts: Could not transfer artifact com.gisquest.cloud:platform-rulesengine-client:jar:1.0.7-YWDZ-20220928.030757-1 from/to nexus (http://192.168.11.70:8081/nexus/content/groups/public): Transfer failed for http://192.168.11.70:8081/nexus/content/groups/public/com/gisquest/cloud/platform-rulesengine-client/1.0.7-YWDZ-SNAPSHOT/platform-rulesengine-client-1.0.7-YWDZ-20220928.030757-1.jar 400 Bad Request
最终在同事的帮助下查看了私服仓库中的配置,发现了该http://192.168.11.70:8081/nexus/content/groups/public路径私服仓库的类型是group
nexus中仓库类型proxy、hosted、group 简介
代理仓库(proxy):用来代理远程公共仓库,如Maven中央仓库(即拉取仓库)。
仓库组(group):用来聚合代理仓库和宿主仓库,提供统一的服务地址,以便Maven获得仓库中的构件(即拉取仓库)
宿主仓库(hosted):部署本地项目所产生的构件(即推送仓库)
因此正确的推送命令应该是:私服仓库hosted类型上面命令修改如下即可:
-Durl=http://192.168.11.70:8081/nexus/content/repositories/snapshots/
结论:
推送时:-Durl路径应该是hosted类型的私服仓库地址,项目中一般配置proxy、group类型的都是拉取的仓库的地址
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhibajbi
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22