对于Nexus
如下图,在局域网部署了Nexus之后,能够缓存地方仓库的jar,开发者开发的二方库公布到Nexus上,局域网内的其他人也能够从Nexus下载这些二方库应用:
环境信息
本次实战是在Linux服务器上通过Docker装置Nexus3:
- 操作系统:Ubuntu 18.04.3 LTS
- Docker:19.03.5
- Nexus:3.19.1
装置docker
- apt更新:
apt-get update
- 装置curl:
apt-get install -y curl
- 装置docker:
curl -sSL https://get.docker.com | sh
- 装置实现后,查看docker是否失常:
root@hedy:~# docker versionClient: Docker Engine - Community Version: 19.03.5 API version: 1.40 Go version: go1.12.12 Git commit: 633a0ea838 Built: Wed Nov 13 07:29:52 2019 OS/Arch: linux/amd64 Experimental: falseServer: Docker Engine - Community Engine: Version: 19.03.5 API version: 1.40 (minimum version 1.12) Go version: go1.12.12 Git commit: 633a0ea838 Built: Wed Nov 13 07:28:22 2019 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.10 GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339 runc: Version: 1.0.0-rc8+dev GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657 docker-init: Version: 0.18.0 GitCommit: fec3683
部署Nexus3
- 创立工作目录并赋权限:
mkdir -p /usr/local/work/nexus-data && chown -R 200 /usr/local/work/nexus-data
- 下载Nexus镜像并创立容器:
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. 容器名为<font color="blue">nexus</font>;
c. 容器的<font color="blue">/nexus-data/</font>目录被映射到宿主机的<font color="blue">/usr/local/work/nexus-data/</font>;
d. 镜像是sonatype官网的<font color="blue">3.19.1</font>版本;
- 期待容器创立胜利后,Nexus3即部署胜利;
登录和操作Nexus3
- 在控制台执行以下命令,即可取得Nexuse3的初始密码:
echo `docker exec nexus cat /nexus-data/admin.password`
我这里失去的是<font color="blue">2c9c5399-d0da-48ec-9050-dc4f43cede10</font>
- 点击下图右上角红框中的<font color="blue">Sign in</font>,进入登录页面:
- 登录页面如下图,账号<font color="blue">admin</blue>,明码是方才获取的<font color="blue">2c9c5399-d0da-48ec-9050-dc4f43cede10</blue>:
- 登录胜利会提醒批改明码,如下图,请批改:
- 是否运行匿名拜访,这里勾选上:
角色和账号
在理论应用中,为了平安起见,不能让每个用户应用admin账号,您能够先创立角色,按理论须要给角色减少各种权限,再创立此角色下的账号:
- 点击下图红框中的按钮,进入设置页面:
- 下图红框中是角色治理页面的链接,您能够依照理论状况创立角色:
- 这里为了简化操作就不新建角色了,而是创立一个管理员角色的账号<font color="blue">boling_cavalry</font>,操作如下图所示:
至此,Nexus3部署结束,接下来验证Nexus是否提供jar缓存的性能;
筹备两台电脑验证Nexus服务
接下来验证的是Nexus缓存地方仓库jar包的能力,看看有了Naxus,是否让咱们在开发和构建过程中更快的下载到所需jar;
- 另外筹备两台电脑,别离是A电脑和B电脑,用来验证刚刚部署的Nexus3能够缓存地方仓库的jar包(您也能够用虚拟机创立两台电脑);
- A、B两台电脑都曾经装好了JDK8和Maven3;
- 如下图,在仓库列表页面,点击下图红框地位,能够失去<font color="blue">maven-central</font>仓库的地址<font color="blue">http://192.168.50.75:8081/repository/maven-central/</font>:
批改两台电脑的maven配置文件
电脑A和电脑B上的maven目录下的<font color="blue">conf/settings.xml</font>文件都要做以下批改:
- 找到<font color="blue">servers</font>节点,减少以下内容:
<server> <id>maven-central</id> <username>bolingcavalry</username> <password>888888</password></server>
- 找到<font color="blue">mirrors</font>节点,减少以下内容,其中url的内容就是后面失去的<font color="blue">maven-central</font>仓库地址:
<mirror> <id>maven-central</id> <mirrorOf>*</mirrorOf> <url>http://192.168.50.75:8081/repository/maven-central/</url></mirror>
在A电脑上编译构建我的项目(应该很慢)
在A电脑上编译开源我的项目<font color="blue">spring-cloud-alibaba</font>,此时Nexus上没有缓存任何jar包,所以<font color="red">编译速度会很慢</font>,因为所有依赖jar都要从地方仓库下载,咱们来试试:
- 登录A电脑,下载<font color="blue">spring-cloud-alibaba</font>的2.1.1.RELEASE归档包:
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
- 编译实现,如下图红框所示,本次编译耗时<font color="blue">9分27秒</font>:
- 去Nexus网页上看看,如下图,此时曾经缓存了不少jar:
在B电脑上编译构建我的项目(应该很快)
在B电脑上做同样的操作,此时Nexus上曾经缓存了编译所需的jar包,所以整个编译过程应该显著变快,最终操作后果如下图所示,仅用了1分零6秒:
至此,Ubuntu上部署和体验Nexus3的实战就实现了,如果您正在寻求简略快捷的Nexus部署计划,心愿本文能给您一些参考。
https://github.com/zq2599/blog_demos