以下内容均以Sonatype Nexus Repository Manager OSS 3.27.0-03版本进行说明。
1.上传手动Upload和mvn deploy命令两种上传方式的应用场景不同,手动上传适用于工具类的jar包,比如项目需要引入的lib文件,这种可以选择手动上传。复杂的、有较多依赖的jar包则需要连同pom文件一起上传,此时需要使用mvn deploy。
1.1 手动Upload首先要登录Nexus,选择Upload,选择要上传的目标仓库,选择 File 填写 Group ID 等,最重要的是要点选Generate a POM file with these coordinates如下图:
正常上传后会有jar和pom文件,这用1.0版本的截图:
如果不勾选,上传成功后没有pom相关文件:
没有pom文件编译时会报错:
Could not find artifact com.xxxx:gpss-nonetty:pom:3.0 in nexus (http://localhost:8081/repository/maven-public/)
勾选后生成的pom文件内容如下:
4.0.0 com.xinan gpss-nonetty 3.0 jar
如果上传错误,删除的方法如下:
1.2 mvn deploy 上传命令上传时,由于未登录Nexus,也无法使用Nexus的Generate a POM file with these coordinates,所以命令上传要自己准备pom文件,配置如下:
4.0.0 com.xinan gpss-nonetty 1.0 jar releases maven的发布仓库id与setting.xml中在server节点id保持一致 http://localhost:8081/repository/maven-releases/
setting.xml 中的配置:
releases admin admin123 snapshots admin admin123
方法1️⃣
使用idea上传当前项目,pom配置:
4.0.0 com.xinan gpss-nonetty 1.0 jar org.apache.maven.plugins maven-compiler-plugin 3.8.1 6 6 org.springframework.boot spring-boot-maven-plugin releases maven的发布仓库id与setting.xml中在server节点id保持一致 http://localhost:8081/repository/maven-releases/
执行 depoly
方法2️⃣
使用idea的Terminal进行上传,由于idea已经配置了maven也就已经加载了setting.xml的配置,所以命令比较简单 此种方式可以上传任意Jar:
# 不传递 DgroupId、DartifactId、Dversion、Dpackaging mvn deploy:deploy-file -Dfile=jarFilePathGPSS-1.0.jar -DpomFile=pomFilePathpom.xml -Durl=http://localhost:8081/repository/maven-releases/ -DrepositoryId=releases
# 传递 DgroupId、DartifactId、Dversion、Dpackaging mvn deploy:deploy-file -DgroupId=com.xxxx -DartifactId=gpss-nonetty -Dversion=1.0 -Dpackaging=jar -Dfile=jarFilePathGPSS-1.0.jar -DpomFile=pomFilePathpom.xml -Durl=http://localhost:8081/repository/maven-releases/ -DrepositoryId=releases
- DgroupId、DartifactId、Dversion、Dpackaging:jar的基本信息,传递的话会覆盖pom内的配置;
- Dfile:jar包的绝对路径;
- DpomFile:jar包对应的Pom文件的绝对路径;
- Durl:Nexus的地址;
- DrepositoryId:对应的是setting.xml文件中配置的serverId,用来关联私服的用户名和密码。
方法3️⃣
使用cmd执行,此时要传递settings.xml文件,这样才能够获取用户名和密码信息:
mvn deploy:deploy-file --settings settingsFilePathsettings.xml -DgroupId=com.xxxx -DartifactId=gpss-nonetty -Dversion=1.0 -Dpackaging=jar -Dfile=jarFilePathgpss-1.0.jar -DpomFile=pomFilePathJavaGPSS-jarpom.xml -Durl=http://localhost:8081/repository/maven-releases/ -DrepositoryId=releases2.总结
不管是手动上传还是命令上传,需要的基本信息都是一样的:
- 仓库地址、账号;
- 上传的jar、pom信息。



