下载
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
右上角登录,用户名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中删除这个包,可以再次尝试一次下载