Nexus 安装
下载地址
小诀窍:使用迅雷下载比直接用浏览器下载快很多
https://download.sonatype.com/nexus/3/latest-unix.tar.gz
上传、解压
上传到 Linux 系统,解压后即可使用,不需要安装。但是需要注意:必须提前安装 JDK。
启动 Nexus
/opt/nexus-3.37.0-01/bin/nexus start
/opt/nexus-3.37.0-01/bin/nexus status
查看端口占用情况
netstat -anp | grep java
tcp 0 0 127.0.0.1:45614 0.0.0.0:* LISTEN 9872/java
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 9872/java
上面 45614 这个每次都不一样,不用管它。我们要访问的是 8081 这个端口。但是需要注意:8081 端口的这个进程要在启动 /opt/nexus-3.37.0-01/bin/nexus 这个主体程序一、两分钟后才会启动,请耐心等待。
关闭防火墙
systemctl stop firewalld
访问 Nexus 首页
首页地址:http://[Linux 服务器地址]:8081/
初始化界面还是很酷的:
初始设置
这里参考提示:
用户名:admin
密码:查看 /opt/sonatype-work/nexus3/admin.password 文件
所以登录信息输入如下:
继续执行初始化:
给 admin 用户指定新密码:
匿名登录,启用还是禁用?由于启用匿名登录后,后续操作比较简单,这里我们演示禁用匿名登录的操作方式:
完成:
对接 Nexus
通过 Nexus 下载 jar 包
了解 Nexus 上的各种仓库
对接 Nexus
通过 Nexus 下载 jar 包
了解 Nexus 上的各种仓库
仓库类型 |
说明 |
proxy |
某个远程仓库的代理 |
group |
存放:通过 Nexus 获取的第三方 jar 包 |
hosted |
存放:本团队其他开发人员部署到 Nexus 的 jar 包 |
仓库名称 |
说明 |
maven-central |
Nexus 对 Maven 中央仓库的代理 |
maven-public |
Nexus 默认创建,供开发人员下载使用的组仓库 |
maven-releasse |
Nexus 默认创建,供开发人员部署自己 jar 包的宿主仓库要求 releasse 版本 |
maven-snapshots |
Nexus 默认创建,供开发人员部署自己 jar 包的宿主仓库要求 snapshots 版本 |
初始状态下,这几个仓库都没有内容:
使用空的本地仓库
<!-- 配置一个新的 Maven 本地仓库 -->
<localRepository>D:/maven-repository-new</localRepository>
指定 Nexus 服务器地址
把我们原来配置阿里云仓库地址的 mirror 标签改成下面这样:
<mirror>
<id>nexus-mine</id>
<mirrorOf>central</mirrorOf>
<name>Nexus mine</name>
<url>http://192.168.198.100:8081/repository/maven-public/</url>
</mirror>
这里的 url 标签是这么来的:
把上图中看到的地址复制出来即可。如果我们在前面允许了匿名访问,到这里就够了。但如果我们禁用了匿名访问,那么接下来我们还要继续配置 settings.xml:
<server>
<id>nexus-mine</id>
<username>admin</username>
<password>wuxian</password>
</server>
这里需要格外注意:server 标签内的 id 标签值必须和 mirror 标签中的 id 值一样。
效果
找一个用到框架的 Maven 工程,执行命令:
mvn clean compile
将 jar 包部署到 Nexus
配置 Maven 工程
<distributionManagement>
<snapshotRepository>
<id>nexus-mine</id>
<name>Nexus Snapshot</name>
<url>http://192.168.198.100:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
这里 snapshotRepository 的 id 标签也必须和 settings.xml 中指定的 mirror 标签的 id 属性一致。
执行部署命令
mvn deploy
引用别人部署的 jar 包
提出问题
- 默认访问的 Nexus 仓库:maven-public
- 存放别人部署 jar 包的仓库:maven-snapshots
配置 Maven 工程
<repositories>
<repository>
<id>nexus-mine</id>
<name>nexus-mine</name>
<url>http://192.168.198.100:8081/repository/maven-snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
修改仓库配置
举例:修改 maven-central 仓库代理的远程库地址