非常感谢 https://my.oschina.net/skyzwg/blog/846195
Maven私服nexus更多资料请访问 www.itkc8.com
1. 在nexus中创建存储第三方jar的仓库,仓库类型要选择 hosted(否则无法保存jar,原因可以参考仓库类型说明:proxy hosted group的区别)。创建仓库是要允许重复发布
2. 配置maven settings.xml
上传第三方jar需要有发布全新的用户,所有在maven的配置文件中需要配置nexus的用户
<server>
<id>maven-third-party</id>
<username>admin</username>
<password>admin123</password>
</server>
3. 上传jar
nexus3 没有提供界面上传的功能。目前只能通过命令上传。
mvn deploy:deploy-file -DgroupId=com.aliyun.oss -DartifactId=aliyun-sdk-oss -Dversion=2.2.3 -Dpackaging=jar -Dfile=D:\abc.jar -Durl=http://localhost:8081/nexus/repository/maven-third-party -DrepositoryId=maven-third-party
mvn deploy:deploy-file
-DgroupId=com.aliyun.oss
-DartifactId=aliyun-sdk-oss
-Dversion=2.2.3
-Dpackaging=jar
-Dfile=D:\abc.jar
-Durl=http://localhost:8081/nexus/repository/maven-third-party/
-DrepositoryId=maven-third-party
这里来对这些参数进行说明:
- DgroupId、DartifactId、Dversion——表示的是构建的基本坐标,你需要根据你上次的jar包自行改变
- Dpackaging——表示的是上传的包的类型,一般为jar,不用改变,根据你的实际情况来改变。
- Dfile——表示的是你需要上传的包的地址
- Durl——表示的是你要上传到的私有仓库的地址
- DrepositoryId——表示你的身份信息,可以从第二步获取。
注意
- 确保你的账号拥有权限
- 确保第三步的参数没有错
- 确保你的网络没有问题
使用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错误。
Maven私服nexus更多资料请访问 www.itkc8.com