如下图,在局域网部署了Nexus之后,可以缓存中央仓库的jar,开发的二方库发布到Nexus上,局域网内的其他人也可以从Nexus下载这些二方库使用:
本次实战是在Linux服务器上通过Docker安装Nexus3:
apt-get update
apt-get install -y curl
curl -sSL https://get.docker.com | sh
mkdir -p /usr/local/work/nexus-data && chown -R 200 /usr/local/work/nexus-data
docker run -d \
-p 8081:8081 \
--name nexus \
-v /usr/local/work/nexus-data:/nexus-data \
sonatype/nexus3:3.19.1
上述命令的参数较多,有几点需要注意: a. 容器的8081端口映射到宿主机的8081端口; b. 容器名为nexus; c. 容器的/nexus-data/目录被映射到宿主机的/usr/local/work/nexus-data/; d. 镜像是sonatype官方的3.19.1版本;
echo `docker exec nexus cat /nexus-data/admin.password`
我这里得到的是2c9c5399-d0da-48ec-9050-dc4f43cede10 2. 点击下图右上角红框中的Sign in,进入登录页面:
3. 登录页面如下图,账号admin,密码是刚才获取的2c9c5399-d0da-48ec-9050-dc4f43cede10:
4. 登录成功会提示修改密码,如下图,请修改:
5. 是否运行匿名访问,这里勾选上:
在实际使用中,为了安全起见,不能让每个用户使用admin账号,您可以先创建角色,按实际需要给角色增加各种权限,再创建此角色下的账号:
至此,Nexus3部署完毕,接下来验证Nexus能否提供jar缓存的功能;
接下来验证的是Nexus缓存中央仓库jar包的能力,看看有了Nexus,能否让我们在开发和构建过程中更快的下载到所需jar;
电脑A和电脑B上的maven目录下的conf/settings.xml文件都要做以下修改:
<server>
<id>maven-central</id>
<username>bolingcavalry</username>
<password>888888</password>
</server>
<mirror>
<id>maven-central</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.50.75:8081/repository/maven-central/</url>
</mirror>
在A电脑上编译开源项目spring-cloud-alibaba,此时Nexus上没有缓存任何jar包,所以编译速度会很慢,因为所有依赖jar都要从中央仓库下载,我们来试试:
wget https://github.com/alibaba/spring-cloud-alibaba/archive/v2.1.1.RELEASE.tar.gz
tar -zxvf v2.1.1.RELEASE.tar.gz
cd spring-cloud-alibaba-2.1.1.RELEASE/
mvn clean compile -U -DskipTests
在B电脑做同样的操作,此时Nexus上已缓存了编译所需的jar包,所以整个编译过程应该明显变快,最终操作结果如下图所示,仅用了1分零6秒:
至此,Ubuntu上部署和体验Nexus3的实战就完成了,如果您正在寻求简单快捷的Nexus部署方案,希望本文能给您一些参考。