Nexus是什么
Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。简单来说,它就是我们自己维护管理的maven仓库,仅限本人或公司内部使用,他人想要访问必须获取授权
为什么要用Nexus
1.在外网速度比较慢的情况下,我们可以将某些已下载包缓存到Nexus,下次获取就比较快了。
2.某些代码实现的功能可能在多个项目中用到,可以将它打包并交给Nexus管理,用到的时候直接通过网络下载相应的包或者导入maven依赖,而不是传统的copy代码,jar包等。
环境搭建
下载地址
tar -zxvf nexus-3.22.0-02-unix.tar.gz
:解压下载的压缩包
cd nexus-3.22.0-02/
ls
- 启动Nexus
cd到bin目录下,通过./nexus start启动Nexus服务
- 查看日志,是否启动成功
cd sonatype-work/nexus3/log/
tail -f nexus.log
:若看到Started Sonatype Nexus OSS 3.22.0-02,说明启动成功,端口默认8081 - 浏览器访问
http://192.168.226.128:8081/
,并以admin登录
登录成功后,看到如下界面:
maven-snapshots
:存放快照版,版本迭代使用
maven-releases
:存放发布版,推荐使用
maven-public
:公用模块
maven-central
:中央仓库,这里用阿里云仓库作为远程代理
上传本地jar包到Nexus
完成基本配置后,我们通过本地文件上传
上传成功后,可以直接下载jar包或查看pom依赖
点击pom
注:只需复制
<dependency>
<groupId>cn.nihao.xf</groupId>
<artifactId>helloworld-spring-boot-starter</artifactId>
<version>0.0.1.RELEASE</version>
</dependency>
别加<type>pom</type>
,不然下载不到jar包
本地Maven配置
打开本地maven的setting.xml
- 授权
<servers></servers>
中添加
<server>
<id>nexus</id>
<!--控制台admin用户-->
<username>admin</username>
<password>123456a?A</password>
</server>
- 私服配置
<!--小方私服 start-->
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://192.168.226.128:8081/repository/maven-releases/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://192.168.226.128:8081/repository/maven-releases/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
<!--小方私服 end-->
- 激活
<activeProfiles>
<!--保证与server中的id一致-->
<activeProfile>nexus</activeProfile>
</activeProfiles>
运用
引入依赖
<dependency>
<groupId>cn.nihao.xf</groupId>
<artifactId>helloworld-spring-boot-starter</artifactId>
<version>0.0.1.RELEASE</version>
</dependency>
待成功下载后,我们可以看到从私服获取到Jar包
总结
Nexus在某些场景还是挺好用的,减少网络流量,方便快速获取jar包,提升功能复用等。不过要注意的是Nexus上的资源仅限本人或公司内部使用,他人想要访问必须获取授权