-
在Nexus中创建存储第三方jar的仓库,仓库类型要选择hosted 否则无法保存jar,原因可以参考仓库类型说明:proxy hosted group的区别)。创建仓库是要允许重复发布

设置仓库参数

-
配置maven setting.xml上传第三方jar需要有发布全新的用户,所以在maven的配置文件中需要配置nexus的用户
<server>
<id>maven-third-party</id>
<username>admin</username>
<password>admin123</password>
</server>
-
使用命令上传jar
mvn deploy:deploy-file -DgroupId=google.code -DartifactId=kaptcha -Dversion=2.3.2 -Dpackaging=jar -Dfile=C:\Users\demo\Downloads\kaptcha-2.3.2.jar -Durl=http://192.168.2.8:8081/repository/maven-third-party/ -DrepositoryId=maven-third-party

这里对这些参数进行说明:
-DgroupId、-DartifactId、-Dversion=2.3.2 表示的构建的基本坐标,你需要根据你上传的jar包修改
-Dpackaging=jar
表示的是上传的包的类型,一般为jar,不用改变,根据你的实际情况来改变
-Dfile
表示的是你需要上传的包的地址
-Durl
表示的是你要上传到的私有仓库的地址
-DrepositoryId
表示你的身份信息,可以从第二步获取
注意:
1、确保你的账号拥有权限
2、确保第三步的参数没有问题
3、确保你的网络没有问题
-
错误总结
使用mvn deploy发布到远程仓库时报错 Return code is: 400
原因:
1. nexus的repository分三种类型:Hosted、 Proxy和Virtual,另外还有一个repository group(仓库组)用于对多个仓库进行组合。部署的时候只能部署到Hosted类型的仓库中,如果是其他类型就会出现这个400错误。
2. 默认情况下部署构件到Releases仓库中有时也会出现400错误,这个原因就像上面提到的那样,Nexus中 Releases仓库默认的Deployment Policy是“Disable Redeploy”,
所以无论你在settings.xml文件中将server的username设置为deployment还是使用admin都是无 法部署的,就会出现这个400错误。
3. Nexus中 Releases仓库Respository PolicySnapshot是“Release”
Snapshot仓库Respository PolicySnapshot是“Snapshot” 如果设置反了或错了也是无法部署的。
4.如果你Snapshot可以发布,但是releases却发布不了,可能是<version>1.0-SNAPSHOT</version>类似这样的,version中包含了-SNAPSHOT,所以release发布不了,
也会返回400错误。
-
页面上传jar(这种方法尝试过不会生出md5校验文件)

上传jar

上传成功浏览jar

注意这种方式不会生成md5校验文件