背景

在使用maven构建项目的时候,几乎都会涉及到一个“私服”的概念,那么到底什么是私服?使用私服有能够带来哪些益处?

  • 私服:私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
  • 个人认为搭建私服的好处有两点:
    • 一、速度问题。在maven连接公共仓库下载jar包时,如果遇到网速不给力的情况,那真就是呵呵了。使用私服,开发人员可以通过局域网在私服仓库中搜索下载jar包,这样一来就不存在网速的问题了。有些人可能会说国内有很多高速maven仓库啊,说的也对,那不知道是否想过自己网速不给力呢?
    • 二、jar包管理问题,一套系统中,jar包版本绝对是一个大问题,不一样的jar版本造成的后果有可能是毁灭性的。通过私服,所有开发者使用的jar包版本都是统一的。

步骤

  • 安装Nexu

    • 下载Nexus:https://www.sonatype.com/download-oss-sonatype ,如下图,点击红色框内的链接即可下载

    • 下载之后会得到文件nexus-3.9.0-01-unix.tar.gz

    • 解压文件:tar -zxvf nexus-3.9.0-01-unix.tar.gz,会得到文件nexus-3.9.0-01和sonatype-work,如下图

      • nexus-3.9.0-01:Nexus核心启动文件
      • sonatype-work:Nexus下载文件默认存放位置
    • 整合文件:因为解压之后的两个文件是分开的,所以最好将两个文件放到一个目录中(这步可以不操作,个人随意)
      • 建立了一个目录,命名为nexus-3.9:mkdir  nexus-3.9
      • 将nexus-3.9.0-01移动到新建立的目录中:mv nexus-3.9.0-01 nexus-3.9
      • 将sonatype-work移动到新建立的目录中:mv sonatype-work nexus-3.9
      • 将新目录nexus-3.9移动到/usr/local目录下:mv nexus-3.9  /usr/local
    • 启动Nexus
      • 进入到Nexus启动目录下:cd /usr/local/nexus-3.9/nexus-3.9.0-01/bin ,注意标记颜色的是路径,用户可自定义
      • 进入到bin目录下启动Nexus查看文件:ls -lt ,如下图所示

      • 使用命令启动Nexus: ./nexus  start,启动如下图

  • 访问Nexus
    • 登录控制台:在启动Nexus之后,大约2分钟左右,访问网址:http://服务器IP:8081/nexus,如下图

    • 点击Sign In,登录,初始登录用户名admin,密码admin123,登陆后如下图所示

    • 点击红色按钮,出现下图

      • Blob Stores:Nexus下载的文件存放的默认位置,新手选择默认位置即可
      • Repositories:仓库配置,很重要
    • 点击Repositories,进入如下页面

      • Nexus默认的仓库类型Type

        • proxy(代理类型):这里就是代理的意思,代理中央Maven仓库,当PC访问中央库的时候,先通过Proxy下载到Nexus仓库,然后再从Nexus仓库下载到PC本地。
        • group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库,能把多个仓库合成一个仓库来使用。
        • hosted(宿主类型):Hosted是宿主机的意思,内部项目的发布仓库(内部开发人员,发布上去存放的仓库)。
        • virtual(虚拟类型):虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用);
      • Name说明
        • maven-central:中央代理仓库
        • maven-public:默认把maven-central、maven-releases、maven-snapshots合成一个仓库
        • maven-releases:发布版本仓库
        • maven-snapshots:快照版本仓库
    • 查看maven-public仓库信息,点击maven-public,进入如下页面

      • 标记1:是在maven的settings.xml中配置的镜像访问地址
      • 标记2:是在这个仓库组里包含的其他仓库
      • 所有配置默认即可,到此Nexus私服配置结束。
  • 配置maven
    • 进入{MAVEN_HOME}/conf/settings.xml

      • 在<mirrors>标签内增加如下代码

             <mirror>
        <id>nexus</id>
           <name>maven-public</name>
        <mirrorOf>*</mirrorOf>
        <url>http://192.168.67.129:8081/repository/maven-public/</url>
        </mirror>
      • id:镜像的唯一标识,id用来区分不同的mirror元素,可自定义
      • name:镜像的标识名称,可自定义
      • mirrorOf:被镜像的id,*代表该组仓库下所有的仓库都可被构建
      • url:镜像访问地址,访问该地址就可以访问该组仓库下的所有仓库
  • 至此,maven私服可以进行访问了,前提是Nexus-Maven的服务器可以访问外网,而使用maven开发项目的宿主机不连接外网也没有问题

Linux服务器搭建Nexus-Maven私服(适合新手比较基础)的更多相关文章

  1. centos7搭建nexus maven私服

    前置条件: 1.安装jdk,可参考 http://www.cnblogs.com/grey-wolf/p/6480489.html 2.nexus仓库管理器,分为两个版本,Nexus Reposito ...

  2. centos7搭建nexus maven私服(二)

    本文主要补充两个主题: 1.手动更新索引 2.通过maven客户端发布本地jar包到nexus 先说第一个主题: 由于maven中央仓库汇集了全世界绝大多数的组件,所以它的索引库非常庞大,在我们右击仓 ...

  3. linux 搭建 nexus maven私服仓储

    一.下载 1.创建下载软件包目录  mkdir /home/install 2.在/home/install下载nexus包,或者将下载好的nexus压缩包上传至/home/install wget ...

  4. Centos 基础开发环境搭建之Maven私服nexus

    hmaster 安装nexus及启动方式 /usr/local/nexus-2.6.3-01/bin ./nexus status Centos 基础开发环境搭建之Maven私服nexus . 软件  ...

  5. Linux 下搭建 Sonatype Nexus Maven 私服

    一.为什么需要搭建mave私服 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下 载构件无疑加大了仓库的 ...

  6. 结合jenkins在Linux服务器搭建测试环境

    何时使用: 测试过程中我们需要持续构建一个软件项目,为避免重复的手动下载.解压操作,我们需要搭建一个能够自动构建的测试环境,当代码有更新时,测试人员只需点一下[构建]即可拉取最新的代码进行测试(也可设 ...

  7. Linux服务器搭建相关教程链接整理

    Linux: Linux 教程 | 菜鸟教程 linux下如何添加一个用户并且让用户获得root权限 - !canfly - 博客园 Git: 在 Linux 下搭建 Git 服务器 - 黄棣-dee ...

  8. LINUX服务器搭建和常用配置介绍

    服务器搭建 : 搭建私有CA服务器 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_011_ca.html搭建samba服务器 : h ...

  9. 【Maven】3.使用IntelliJ IDEA 使用本地搭建的maven私服,而不是使用默认的maven设置

    安装Idea的教程:http://www.cnblogs.com/sxdcgaq8080/p/7641379.html 搭建maven私服的教程:http://www.cnblogs.com/sxdc ...

随机推荐

  1. ProxySQL(读写分离)部署

    proxySQL是MySQL的中间件产品,是灵活强大的代理层,实现读写分离,支持Query路由功能,支持动态指定某个SQL进行缓存,支持动态加载配置,故障切换和一些SQL 过滤功能 环境: 192.1 ...

  2. js中call,caller,callee,aplly

    1.函数的caller属性 (1).区分函数是在函数体调用还是顶层代码中调用:顶层中调用函数,该函数的caller属性返回null,在函数中调用,会返回调用发i函数的函数: <script> ...

  3. 001-http协议-请求报文以及服务器响应状态

    Http协议的几个概念: 1.连接(Connection):浏览器和服务器之间传输数据的通道. 一般请求完毕就关闭,http不保持连接.不保持连接会降低处理速度(因为建立连接速度很慢),保持连接的话就 ...

  4. docker中crontab无法执行

    1.下载的镜像是ubuntu最简版,默认没有安装crontab 2.业务需求需要crontab 最早解决方案 1.在宿主机里面 1 3  * * * root  cd /data/wwwroot/xx ...

  5. 【Linux学习五】文本处理

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 一.cut:显示切割的行数据f:选择显示的列s:不显示没有分隔符的行d ...

  6. python 文件描述符

    先上一张图 文件描述符是内核为了高效管理已经被打开的文件所创建的索引, ----非负整数 ----用于指代被打开的文件 ----所有执行i/o操作的系统调用都是通过文件描述符完成的 进程通过文件描述符 ...

  7. rabbitmq的相关知识

    1. 如何确保消息正确地发送至RabbitMQ? RabbitMQ使用发送方确认模式,确保消息正确地发送到RabbitMQ. 发送方确认模式:将信道设置成confirm模式(发送方确认模式),则所有在 ...

  8. Hadoop常用命令总结

    一.前述 分享一篇hadoop的常用命令的总结,将常用的Hadoop命令总结如下. 二.具体 1.启动hadoop所有进程start-all.sh等价于start-dfs.sh + start-yar ...

  9. django 常用方法总结 < 手写分页-上传头像-redis缓存,排行 ...>

    1.不使用自带模块<Paginator>的手写分页功能views.pydef post_list(request): page = request.GET.get('page', 1) # ...

  10. Map集合——双列集合

    双列集合<k, v> Map: Map 和 HashMap是无序的: LinkedHashMap是有序的: HashMap & LinkedHashMap: put方法: 其中,可 ...