博客
关于我
Maven学习笔记(五)-使用Nexus搭建Maven私服
阅读量:319 次
发布时间:2019-03-04

本文共 2718 字,大约阅读时间需要 9 分钟。

一、下载Nexus

Nexus 专业版是需要付费的,这里我们下载开源版 Nexus OSS。Nexus 提供两种安装包,一种是包含 Jetty 容器的 bundle 包,另一种是不包含容器的 war 包。

下载地址:。

或者去这下载:  nexus-2.8.1-01-bundle.zip 

二、安装Nexus

使用bundle安装包安装Nexus 

解压安装包nexus-2.8.1-bundle.zip,打开命令提示符,进入/nexus-2.8.1-01目录,键入nexus命令:

执行 nexus install 将Nexus安装为Windows服务。可将服务启动方式设为手动,以后通过 nexus start 即可启动Nexus ,通过 nexus stop 退出Nexus:

或者这样:

%nexus_home%\bin\nexus.bat install (安装成windows服务)

%nexus_home%\bin\nexus.bat start (启动)

为方便启动和退出Nexus,可将bin目录添加到环境变量:

新建环境变量 Nexus_HOME

把Nexus_HOME添加到Path中去

打开浏览器,访问:http://localhost:8081/nexus/

点击右上角 Log In,使用用户名:admin ,密码:admin123 登录,可使用更多功能:

三、配置Nexus

点击左侧 Repositories 链接,查看 Nexus 内置的仓库:

nexus的仓库类型分为以下四种:

    group: 仓库组   

用来发布一些第三方不允许的组件,比如Oracle驱动、比如商业软件jar包。

    hosted:宿主  

内部项目的发布仓库

    proxy:代理

最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。

    virtual:虚拟

publicRepositories:  仓库组

                  3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库

                  Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库

                  Central: 用来代理maven中央仓库中发布版本构件的仓库

                  Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库

                  Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库

                  Releases: 用来部署管理内部的发布版本构件的宿主类型仓库

                 Snapshots: 用来部署管理内部的快照版本构件的宿主类型仓库

1.添加代理仓库

以 Sonatype 为例,添加一个代理仓库,用于代理 Sonatype 的公共远程仓库。点击菜单 Add - Proxy Repository

填写

Repository ID - fendo

Repository Name - fendo Repository;

Remote Storage Location - http://repository.sonatype.org/content/groups/public/   save 保存: 

将添加的 fendo 代理仓库加入 Public Repositories 仓库组。选中 Public Repositories,在 Configuration 选项卡中,将 fendo Repository 从右侧 Available Repositories 移到左侧 Ordered Group Repositories,save 保存:

2.开启远程索引

下载Maven仓库索引有两种方式:

一、手动下载

首先将索引下载到本地,下载地址:
解压索引压缩包,将里面内容全部拷贝
关闭当前Nexus私服,打开Nexus目录%Nexus_Home%\sonatype-work\nexus\indexer\central-ctx,首先删除当前目录里所有内容,然后粘贴所下载的索引

最后启动Nexus私服,索引生效。

二、自动下载

 

下载索引的步骤:

找到右边仓库列表中的三个仓库Apache Snapshots,Codehaus Snapshots和Maven Central,然后在仓库的configuration下把Download Remote Indexes修改为true。

然后在Apache Snapshots,Codehaus Snapshots和Maven Central这三个仓库上分别右键,选择Repari Index,这样Nexus就会去下载远程的索引文件。

可以进入Scheduled Tasks查看任务的执行情况,当执行完成时,远程仓库的索引就已经建立完毕了。

这样设置以后, Nexus会自动从远程中央仓库下载索引文件, 为了检验索引文件自动下载是否生效,可以却换到Browse Index

索引下载成功之后,在 Browse Index 选项卡下,可以浏览到所有已被索引的构件信息,包括坐标、格式、Maven 依赖的 xml 代码:

有了索引,我们就可以搜索了:

3.配置Maven使用私服

私服搭建成功,我们就可以配置 Maven 使用私服,以后下载构件、部署构件,都通过私服来管理。

在 C:\Users\%HOME%\.m2\settings.xml 文件中,为所有仓库配置一个镜像仓库,镜像仓库的地址即私服的地址(这儿我们使用私服公共仓库组 Public Repositories 的地址):

settings.xml中加入:

说明:

1.<mirrorOf>*</mirrorOf>

匹配所有远程仓库。
2.<mirrorOf>external:*</mirrorOf>
匹配所有远程仓库,使用localhost的除外,使用file://协议的除外。也就是说,匹配所有不在本机上的远程仓库。
3.<mirrorOf>repo1,repo2</mirrorOf>
匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。
4.<mirrorOf>*,!repo1</miiroOf>
匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。
需要注意的是,由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,Maven仍将无法访问被镜像仓库,因而将无法下载构件。

你可能感兴趣的文章
SQL Server之深入理解STUFF
查看>>
EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public?
查看>>
使用mybatis-generator生成底层
查看>>
Android APK 重签名
查看>>
Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息
查看>>
Mybatis【5】-- Mybatis多种增删改查那些你会了么?
查看>>
Mybatis【7】-- Mybatis如何知道增删改是否成功执行?
查看>>
Mybatis【9】-- Mybatis占位符#{}和拼接符${}有什么区别?
查看>>
计算输入的一句英文语句中单词数
查看>>
zabbix系列之十——添加短信告警
查看>>
docker复制文件到宿主机
查看>>
lvs+keepalive构建高可用集群
查看>>
Mysql高可用架构(主从同步)
查看>>
mysql主从延迟高的原因
查看>>
ATS缓存数据结构
查看>>
glob模块
查看>>
6 个 Linux 运维典型问题
查看>>
Failed to get D-Bus connection: Operation not permitted解决
查看>>
oracle无法启动asm实例记录
查看>>
取消vim打开文件全是黄色方法
查看>>