下载
https://help.sonatype.com/repomanager2/download/download-archives—repository-manager-oss
https://www.sonatype.com/products/repository-oss-download
https://download.sonatype.com/nexus/3/latest-unix.tar.gz
都下载不了,应该是被防火墙屏蔽了,我另外上传的包吧
直接docker方式也行
https://hub.docker.com/r/sonatype/nexus3/
tar.gz方式部署
#解压
tar -xzvf nexus-3.19.1-01-unix.tar.gz
cd nexus-3.19.1-01/bin
#启动服务
./nexus start
#添加8081端口到防火墙规则(--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=8081/tcp --permanent
#重新载入
firewall-cmd --reload
访问
http://ip:8081/
右上角登录,用户名admin,密码在sonatype-work/nexus3/admin.password文件中
登录后要修改新密码,改为admin(后面要用到)
然后弹出Configure Anonymous Access,我们允许匿名访问,勾选Enable anonymous access
Browse菜单可以看到几个maven2(java包)和nuget(.net包)的仓库
sonatype-work是工作目录
配置文件:
sonatype-work/nexus3/etc/nexus.properties
应该可以改端口什么的
上传jar包
web直接上传
登陆后,Upload菜单可以选择maven-releases这个maven仓库上传jar包,选择jar包,填写groupid、artifactid、version,点击upload即可上传
点击上方齿轮进入设置页面,Repository——Repositorys,点击maven-release仓库,可以看到仓库url:http://10.0.1.151:8081/repository/maven-releases/
maven项目中上传
编写一个maven项目
pom.xml中project配置节添加
<!-- 使用分发管理将本项目打成jar包,直接上传到指定服务器 --><distributionManagement><!--正式版本--><repository><!-- nexus服务器中用户名:在settings.xml中<server>的id--><id>nexus-releases</id><!-- 这个名称自己定义 --><name>Release repository</name><url>http://10.0.1.151:8081/repository/maven-releases/</url></repository><!--快照--><snapshotRepository><id>nexus-snapshots</id><name>Snapshots repository</name><url>http://10.0.1.151:8081/repository/maven-snapshots/</url></snapshotRepository></distributionManagement>
用户的目录下.m2/settings.xml配置中(没有从maven的conf目录拷贝过来一个)
servers配置节添加
<server><id>nexus-releases</id><username>admin</username><password>admin</password></server><server><id>nexus-snapshots</id><username>admin</username><password>admin</password></server>
运行mvn deploy,执行到Uploading to nexus-snapshots就是正在往nexus中上传包了。
上传完成后,可以到nexus web界面的Browse或者Search中查看包
maven命令直接上传
mvn deploy:deploy-file -DgroupId=org.whq -DartifactId=abc -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=abc-1.0-SNAPSHOT.jar -Durl=http://10.0.1.151:8081/repository/maven-snapshots/ -DrepositoryId=nexus-snapshots
注意,用户名密码也是存储在上一步中存储的settings.xml的id为nexus-snapshots的server中的
使用私服
配置maven镜像
中央仓库等第三方仓库的镜像,中央仓库对应nexus的maven-central仓库(admin设置打开这个仓库可以看到配置了proxy代理https://repo1.maven.org/maven2/)
settings.xml的mirrors节添加,项目刷新maven(下载maven依赖)时会先从中央仓库下载到nexus服务器,再下载到本地(可以看下nexus服务器中已经有项目依赖的包了)
<mirror><id>nexus-central</id><mirrorOf>central</mirrorOf><name>local-central</name><url>http://10.0.1.151:8081/repository/maven-central/</url></mirror>
pom.xml下载刚才上传的jar包
pom.xml中project节配置
<repositories><repository><id>nexus-snapshots</id><name>Snapshots repository</name><url>http://10.0.1.151:8081/repository/maven-snapshots/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>
添加依赖
<dependency><groupId>org.whq</groupId><artifactId>abc</artifactId><version>1.0-SNAPSHOT</version></dependency>
刷新之后可以看到这个包已经有了
从用户目录下.m2\repository中删除这个包,可以再次尝试一次下载