Nexus搭建Maven私服中央仓库

一、概述

  1、概要

     现在的项目基本都是用Maven来管理工程,这样一来在公司内容搭建一个私服就非常有必要了,这样一来可以管理公司内部用的JAR包,也可以管理第三方的各种JAR来,以免每次都要从外网的仓库中下载。私服有两种软件搭建Nexus和artifactory,这两个各有优点。本文配置一下Nexus。Nexus还是一个比较流行的私服。

  2、Nexus介绍

       Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。Nexus支持WebDAV与LDAP安全身份认证。

  Nexus的下载地址是:http://www.sonatype.org/nexus/go/到官网上将ZIP的压缩包下载下来即可,解压之后发现有两个文件夹,一个是nexus-2.11.0-02,另一个是sonatype-work;第一个文件夹包含了Nexus运行所需要的文件,是运行Nexus必须的;第二个文件夹目录包含Nexus生成的配置文件、日志文件、仓库文件等,当需要备份Nexus的时候,默认备份的是此目录文件。

  

二、环境准备

  1、apache-maven-3.2.5  百度网盘下载地址:https://pan.baidu.com/s/1Rhglh4_RPgT79pXObQ2vZQ 提取码:a6h6 

  关于maven请参考我的另一篇文章:https://www.cnblogs.com/liandy001/p/11287278.html

  2、nexus-2.11.4-01-bundle 百度网盘下载地址:https://pan.baidu.com/s/1ZCyVb-Zc5RytvG9tFv5F2Q  提取码:h3d0

  3、JDK1.8 64位 百度网盘下载地址:https://pan.baidu.com/s/1lI6BLbWK7DslmIjI_z81Pg  提取码:knuz

   

三、Nexus环境配置

  1、修改系统变量

  在系统变量Path  添加值(D:\DevelopTools\nexus-2.11.4-01-bundle\nexus-2.11.4-01\bin;(按实际安装目录为准))

  

  2、配置Nexus对应的JDK

  在 nexus的根目录bin\jsw\conf\wrapper.conf的文件

  修改:wrapper.java.command=C:\Program Files\Java\jdk1.8.0_131\bin\java

  

  3、安装Nexus服务

  dos窗口输入指令nexus install

  

  

  4、启动Nexus服务

  dos窗口输入指令nexus start

   

  如果启动失败,主要有两种原因:

    1、Nexus安装目录 bin\jsw\conf\wrapper.conf中的java配置错误导致启动失败(错误可能性1:版本错误;错误可能性2:写错路径了).

       2、8081端口被占用导致启动失败(如果是非系统进程占用,结束该进程即可),或修改Jetty的端口,在Nexus的安装目前/conf/nexus.properties文件中找到 application-port=8081   改为8181就行了。

四、Nexus初步介绍

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

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

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

   

  

  4.Nexus 的仓库分为这么几类:

  • hosted 宿主仓库:主要用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件;
  • proxy 代理仓库:代理公共的远程仓库;
  • virtual 虚拟仓库:用于适配 Maven 1;
  • group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库。

  5.为了更好的使用 Nexus 的搜索,我们可以设置所有 proxy 仓库的 Download Remote Indexes 为 true,即允许下载远程仓库索引。

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

  

  

  6.管理本地仓库

我们前面讲到类型为hosted的为本地仓库,Nexus预定义了3个本地仓库,分别是Releases, Snapshots, 3rd Party. 分别讲一下这三个预置的仓库都是做什么用的:

  Releases:

     这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如我们自己做了一个FTP Server的项目, 生成的构件为ftpserver.war, 我们就可以把这个构建发布到Nexus的Releases本地仓库. 关于符合发布后面会有介绍.

  Snapshots:

     这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布Snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本.

  3rd Party:

    顾名思义, 第三方库, 你可能会问不是有中央仓库来管理第三方库嘛,没错, 这里的是指可以让你添加自己的第三方库, 比如有些构件在中央仓库是不存在的. 比如你在中央仓库找不到Oracle 的JDBC驱动, 这个时候我们就需要自己添加到3rdparty仓库。

  

五、通过Maven发布到Nexus中央仓库

1 . 修改私服中仓库的部署策略

  Release版本的项目应该发布到Releases仓库中,对应的,Snapshot版本应该发布到Snapshots仓库中。Maven根据pom.xml文件中版本号<version>节点的属性是否包含-SNAPSHOT,来判断该项目是否是snapshot版本。如果是snapshot版本,在执行mvn deploy部署命令时,maven会自动将项目发布到Snapshots仓库。要发布项目,首先需要将Releases仓库和Snapshots仓库的“Deployment Policy”设置为“Allow Redeploy”:

  

2 . 配置项目的部署仓库

在项目的pom.xml文件中增加配置:

       <distributionManagement>
        <repository>
            <id>releases</id>
             <url>http://127.0.0.1:8081/nexus/content/repositories/releases</url>
        </repository>
        <snapshotRepository>
          <id>snapshots</id>
          <url>http://127.0.0.1:8081/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
       </distributionManagement>

3.设置Maven的服务账号和密码

  D:\maven\apache-maven-3.2.5\conf\settings.xml

    <server>
      <id>releases</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>snapshots</id>
      <username>admin</username>
      <password>admin123</password>
    </server>

4.发布项目到Nexus中央仓库

右键项目->run as->maven build……->run

发布成功后,在私服的仓库中就能看到了:

六、在Nexus中手动上传项目构件

七、Nexus私服库快速导入jar包

1、找到Repositories->Central->Configuration;如下图

备注:图中第三步 是Nexus 默认的工作路径,需要把你本地的 maven 仓库地中的 所有jar包通过 XFTP上传到里面,再Save;

Nexus私服库快速导入jar包结束;

猜你喜欢

转载自www.cnblogs.com/liandy001/p/11309588.html