Sonatype Nexus搭建Maven私服

1. 概述

私服就是企业搭建供内部使用的一个Maven仓库,实现企业内部依赖的共享,具有降低中央仓库负荷、节省外网宽带和提高项目稳定性等优点。实际开发中服务器不能访问公网,可以通过一台能访问外网的服务器作为代理服务器下载需要的依赖。Nexus是Sonatype公司发布的一款仓库管理软件,常用于搭建Maven私服。更多详情,可以访问官网
Sonatype Nexus搭建Maven私服_第1张图片

2. 环境要求

Nexus依赖于Java8,所以需要提前搭建好Java环境,CPU数最低为4
Sonatype Nexus搭建Maven私服_第2张图片
内存最低要求8GB
Sonatype Nexus搭建Maven私服_第3张图片

3. 安装Nexus

3.1. 下载安装包

从官网下载最新安装包
Sonatype Nexus搭建Maven私服_第4张图片
选择适合的版本,点击下载链接即可,注意下载速度很慢,可以通过专门下载工具进行快速下载

3.2. 解压

将下载的安装压缩包解压到指定目录,如果是Linux服务器安装,需要先将压缩包上传到服务器目录再解压,解压后目录如下:
解压后目录
nexus-3.38.1-01:包含Nexus运行所需的文件以及所有必需的其他组件,如启动脚本、依赖jar包等
sonatype-work:包含由Nexus存储和管理的仓库、组件和其他数据

3.3. 启动Nexus

进入nexus-3.38.1-01/bin目录下,执行./nexus start命令启动Nexus
启动Nexus
执行./nexus status可以查看启动状态
启动状态
使用netstat -anp | grep java命令查看端口占用情况,可以看到8081端口
在Windows环境中,在bin目录下执行nexus /run启动Nexus
Sonatype Nexus搭建Maven私服_第5张图片

3.4. 访问Nexus首页

浏览器地址输入http://ip:8081,初始化界面如下
Sonatype Nexus搭建Maven私服_第6张图片
初始化完成后,进入首页
Sonatype Nexus搭建Maven私服_第7张图片

3.5. 初始设置

点击右上角Sign in
Sonatype Nexus搭建Maven私服_第8张图片
输入用户名/密码,默认用户名是admin,默认密码如提示的/sonatype-work/nexus3/admin.password
Sonatype Nexus搭建Maven私服_第9张图片
直接点击Next,进入下一步
Sonatype Nexus搭建Maven私服_第10张图片
输入新密码,点击Next,进入下一步
Sonatype Nexus搭建Maven私服_第11张图片
勾选禁用匿名访问选项,点击Next,进入下一步
Sonatype Nexus搭建Maven私服_第12张图片
点击Finish即可
登陆后的界面如下
Sonatype Nexus搭建Maven私服_第13张图片

4. Maven项目接入Nexus

4.1. 通过Nexus下载jar包

Sonatype Nexus搭建Maven私服_第14张图片
仓库类型说明
proxy:某个远程仓库代理
group:存放通过Nexus获取的第三方jar包
hosted:存放本团队开发人员部署到Nexus的jar包
仓库名称说明
maven-central:Nexus对Maven中央仓库代理
maven-public:Nexus默认创建,供开发人员下载使用的组仓库
maven-releases:Nexus默认创建,供开发人员部署jar包的宿主仓库要求release版本
maven-snapshots:Nexus默认创建,供开发人员部署jar包的宿主仓库要求snapshots版本
初始状态时,以上几个仓库都没有依赖
Sonatype Nexus搭建Maven私服_第15张图片
使用本地Maven空仓库

<localRepository>E:\Java\repository-3.8.5localRepository>

在mirrors标签中添加Nexus库

<mirror>
	<id>nexus-mineid>
	<mirrorOf>centralmirrorOf>
	<name>Nexus minename>
	<url>http://xx.xx.xx.xx:8081/repository/maven-public/url>
mirror>

在servers标签配置用户信息

<server>
	<id>nexus-mineid>
	<username>adminusername>
	<password>123456password>
server>

注意:server标签的id标签值必须与mirror标签的id标签值一致
在maven项目中执行mvn clean compile命令,下载依赖后,Nexus服务器就有jar包
Sonatype Nexus搭建Maven私服_第16张图片

4.2. 将jar包部署到Nexus

在maven项目中配置如下信息

<distributionManagement>
    <snapshotRepository>
        <id>nexus-mineid>
        <name>Nexus Snapshotname>
        <url>http://xx.xx.xx.xx:8081/repository/maven-snapshots/url>
    snapshotRepository>
distributionManagement>

snapshotRepository 的 id 标签也必须和 settings.xml 中指定的 mirror 标签的 id 属性一致
执行部署命令

mvn deploy

Sonatype Nexus搭建Maven私服_第17张图片
查看Nexus服务器上maven-snapshots仓库
Sonatype Nexus搭建Maven私服_第18张图片

4.3. 引用他人部署的jar包

在maven项目中引入如下配置

<repositories>
    <repository>
        <id>nexus-mineid>
        <name>Nexus Snapshotname>
        <url>http://xx.xx.xx.xx:8081/repository/maven-snapshots/url>
        <snapshots>
            <enabled>trueenabled>
        snapshots>
        <releases>
            <enabled>trueenabled>
        releases>
    repository>
repositories>

4.4. 修改Nexus仓库配置

Nexus的远程仓库默认为中央仓库,访问较慢,可以修改为国内的阿里云仓库
Sonatype Nexus搭建Maven私服_第19张图片
点击进入,修改远程中央仓库配置
Sonatype Nexus搭建Maven私服_第20张图片

4.5. 上传jar依赖

对于不能从中央仓库获取的第三方依赖,可以直接上传到Nexus私库
Sonatype Nexus搭建Maven私服_第21张图片
选择maven-releases仓库进入,选择需要上传的jar包
Sonatype Nexus搭建Maven私服_第22张图片

你可能感兴趣的:(开发工具,Nexus,maven私服)