`
iqeq00
  • 浏览: 60356 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Nexus 私服之二“仓库与仓库组”

阅读更多

前端时间准备考试,一个月没有更新,考试完毕继续更新博客...

 

Nexus 私服之二“仓库与仓库组”

 

1. Nexus 仓库类型

 

作为 Maven 仓库服务软件,仓库自然是 Nexus 中最重要的概念。Nexus 包含了各

种类型的仓库概念,包括代理仓库、宿主仓库和仓库组等。每一种仓库都提供了非常丰

富实用的配置参数,方便用户根据需要进行定制。

 

a) group(仓库组)

b) hosted(宿主仓库)

c) proxy(代理仓库)

d) virtual(虚拟仓库)

 

2. Nexus 内置仓库

 

单击 Nexus 左边导航栏上的 Repositories,如下图所示:


 

a) 仓库属性讲解

 

     i.   Repository

          仓库名称。

 

     ii.   Type

          仓库的类型,就是上面第一大点的讲解。

 

     iii.  Quality

          仓库的质量分析,仓库里面内容的健康状态。具体就是,软件许可证是否完整可靠,

          有没有安全风险。有些绿色,有些灰色,是因为这个检查只对本地仓库含有 Release(且开源)

          内容才有意义,不检查 Snapshot,仓库没有内容也不会检查,没有数据就没法返回结果。

 

     iv.  Format

          仓库格式,分为 maven1、maven2,现在 maven1 格式的仓库基本不使用了,所以这里省略。

          另外虚拟类型仓库(virtual)的作用实际上是动态地将仓库内容格式转换,也就是说,

          为了服务 maven1 格式,所以也省略。

 

     v.  Policy

         仓库的策略,表示该仓库是发布版本(Release)还是快照版本(Snapshot)。

 

     vi. Repository Status

         仓库的状态。

 

    vii. Repository Path

         仓库的路径。

 

b) 默认自带的内置仓库

    Nexus 自带了很多默认的仓库。

 

    i.   Public Repositories

         Nexus 公共的仓库组,属于 group 类型,可以聚合你想要的仓库(例如策略

         都为 Release 的仓库),并通过一致的地址提供服务。

 

    ii.  3rd party

        用来部署无法从公共仓库获得的第三方发布版本构件(多因为版权,例如oracle

         的 jdbc 驱动),策略为 Release 的宿主类型仓库。

 

    iii. Apache Snapshots

        代理 Apache Maven 仓库的快照版本构件,策略为 Snapshot 的代理仓库。

 

    iv. Atlassian-m2-repository

        自己添加的三方仓库,策略为 Release 的代理仓库。

 

    v.  Central

        代理 Maven 的中央仓库,策略为 Release 的代理仓库。

 

    vi. Central M1 shadow

         maven1 格式的虚拟仓库,省略。

 

    vii. Codehaus Snapshots

         代理 Codehaus Maven 仓库的快照版本构件,策略为 Snapshot 的代理仓库。

 

    viii. Releases

          用来部署组织内部的发布版本构件,策略为 Release 的宿主仓库。

 

    ix.   Snapshots

          用来部署组织内部的快照版本构件,策略为 Snapshot 的宿主仓库。

 

3. Nexus 仓库分类

 

Maven 可以直接从宿主仓库下载构件,Maven 也可以从代理仓库下载构件,

而代理仓库会间接地从远程仓库下载并缓存构件,为了方便,Maven 可以从仓库组下载构件,

而仓库组没有实际内容(图中虚线表示),它会转向其包含的宿主仓库或者代理仓库,

获得实际的构件内容。


 

 

a) Nexus 宿主仓库

    Repositories  Add  Hosted Repository


 

    i.    Id

         填写仓库的 id。

 

    ii.   Name

         填写仓库的 name。

 

    iii.  Type

         仓库的类型,这里的 hosted 表示宿主仓库类型。

 

    iv.  Provider

         仓库的格式提供,选择默认的 Maven2。

 

    v.   Format

         仓库的格式,当选择 provider 后,format 会跟着变化。

 

    vi.  Repository Policy

         仓库的策略,根据自己的需要配置发布构件仓库、快照构件仓库。

 

    vii. Default Local Storage Location

         仓库默认存储目录,该字段的值为空,待仓库创建好之后,就会成为基于sonatype-work

         的一个文件路径,如:sonatype-work/nexus/storage/atlassian。

 

    viii. Override Local Storage Location

          仓库自定义存储目录。

 

    ix.  Deployment Policy

         仓库部署策略。

         1) Disable Redeploy

             关闭重新部署。

         2) Allow Redeploy

             允许重新部署。

         3) Read Only

             只读(禁止部署)。

 

     x.  Allow File Browsing

         是否允许浏览仓库内容,一般选 True。每个仓库(包括代理仓库和仓库组)

         都有一个 Browse Storage 选项卡,用户以树形结构浏览仓库存储文件的内容。


 

     xi. Include in Search

         是否对该仓库进行索引并提供搜索。

 

     xii.Publish URL

         用来控制是否通过 URL 提供服务,如果选择 False,当访问仓库的地址时,

         会得到 HTTP 404 Not Found 错误。

 

    xiii. Not Found Cache TTL

          当一个文件没有找到的后,缓存这一不存在信息的时间。默认值是 1440(一天)分钟,

          如果某文件不存在,在之后的 1440 分钟内,如果 Nexus 再次得到该文件的请求,

          它将直接返回不存在信息,而不会查找文件系统,为了避免重复的文件查找操作以提升性能。

 

b) Nexus 代理仓库

    Repositories  Add  Proxy Repository



 

    i.   Repository Type

         注意这里的值为 proxy。

 

    ii.  Remote Storage Location

         远程仓库的地址,必须输入有效值。

 

    iii. Download Remote Indexes

        是否下载远程仓库的索引,有些远程仓库拥有索引,下载其索引后,即使没有

        缓存远程仓库的构件,用户还是能够在本地搜索和浏览那些构件的基本信息。

 

    iv. Checksum Policy

         配置校验和出错时的策略,用户可以选择忽略、记录警告信息或者拒绝下载。

         当远程仓库需要认证的时候,这里的 Authentication 配置就能派上用处。

 

    v.  Artifact Max Age

        构件缓存的最长时间,对于发布版本仓库来说,默认值为-1,表示构件缓存后

        就一直保存着,不再重新下载。对于快照版本仓库来说,默认值为 1440 分钟,

        表示每隔一天重新缓存代理的构件。

 

    vi. Metadata Max Age

        元数据文件缓存的最长时间。

 

    vii. Item Max Age

         一些在仓库里面的构件不是通过 Maven GAV 或者元数据确定的,这个值将决

         定这些项目的检索更新前的最长时间。(不是很明白,默认就好)

 

    viii. HTTP Request Settings

          Nexus 访问远程仓库时 HTTP 请求的参数。

 

c) Nexus 仓库组

    Repositories  Add  Repository Group


 

    i.   仓库组没有 Release 和 Snapshot 的区别

    ii.  将需要的仓库聚合成一个虚拟的仓库组

    iii. 仓库组包含的顺序决定了仓库组遍历其所含仓库的次序

         因此,最好将常用的仓库放在前面,当用户从仓库组下载构件的时候,就能够

         尽快地访问到包含构件的仓库。

 

4. Nexus 的索引与构件搜索

 

a) 下载索引

 

Nexus 通过维护仓库的索引来提供搜索功能,能在很大程度上方便 Maven 用

户定位构件坐标。为了能够搜索 Maven 中央仓库,首先需要设置 Nexus 中的

Central 代理仓库下载远程索引,默认这个配置的值是关闭的。由于中央仓库的内

容比较多,因此索引文件也比较大,Nexus 下载该文件也需要比较长的时间。

Nexus 在后台运行一个任务来下载中央仓库的索引,用户可以通过界面直接观

察这一任务的状态,单击导航栏的 Scheduled Tasks。就能看到系统的调度任务,

正在下载索引时的状态是 RUNNING,下载完毕后,该任务就会消失。

 

b) 搜索索引

 

有了索引就可以搜索 Maven 构件了,在 Nexus 的快捷搜索框里面输入关键字

后,单击搜索按钮就能得到搜索结果。


 

c) 高级搜索


 

    i.   GAV 搜索(GAV Search)

         允许用户通过设置 GroupId、ArtifactId 和 version 等信息来进行更有针对性的搜索。

    ii.  类名搜索(Classname Search)

         允许用户搜索包含某个 Java 类的构件。

    iii. 校验和搜索(Checksum Search)

         允许用户直接使用构件的校验和来搜索该构件。

 

d) 索引浏览

 

有了中央仓库的索引,用户不仅能够搜索构件,还能够直接浏览中央仓库的内容。

在 Repositories 页面中,选择 Browse Index 选项卡,就可以看到中央仓库内容的

树形结构。


 

 

e) 索引的实现

 

基于 Nexus 索引而实现的搜索及浏览功能,称之为 nexus-indexer,Nexus

能够遍历一个 Maven 仓库所有的内容,搜集它们的坐标、校验和及所含的 Java 类

信息,然后以 nexus-indexer 的形式保存起来。中央仓库维护了这样一个

nexus-indexer,因此本地的 Nexus 下载了这个索引后,就能在此基础上提供搜索

和浏览等服务。不是任何一个公共仓库都提供 nexus-indexer,对于不提供索引的

仓库,我们无法进行搜索。

 

f) 建立索引

 

出了下载使用远程仓库的索引,我们也能够为宿主仓库和代理仓库建立索引。只

需要在仓库上右击,选择 Repair Index 即可。待索引编撰任务完成后,就能搜索该

仓库所包含的构件。


 

   i.   宿主仓库

        Repair Index 任务会扫描该仓库包含的所有构件建立索引。

   ii.  代理仓库

        Repair Index 任务会扫描所有缓存的构件简历索引。

   iii. 远程仓库

        如果远程仓库也有索引,那么下载后与本地的索引合并。

   iv. 仓库组

        Repair Index 任务会合并其包含的所有仓库的索引。

 

  • 大小: 39.2 KB
  • 大小: 49.2 KB
  • 大小: 24.3 KB
  • 大小: 6.4 KB
  • 大小: 26.1 KB
  • 大小: 11 KB
  • 大小: 21.2 KB
  • 大小: 1.8 KB
  • 大小: 1.2 KB
  • 大小: 26.6 KB
  • 大小: 16.1 KB
  • 大小: 7.9 KB
  • 大小: 10.8 KB
1
1
分享到:
评论

相关推荐

    maven 私服 nexus2 nexus3 安装与说明

    maven 私服 nexus2 nexus3 安装与说明,只有简单的安装,没有详细的配置使用说明

    Nexus私服系列合集

    Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不...

    使用Nexus创建私服

    使用Nexus创建私服

    Windows 下Nexus搭建Maven私服

    Windows 下Nexus搭建Maven私服 Windows 下Nexus搭建Maven私服

    nexus-2.14.9 私服仓库

    nexus-2.14.9 私服仓库。 https://www.sonatype.com/oss-thank-you-tgz

    发布包到NuGet私服(基于Nexus的私服)

    发布包到NuGet私服(基于Nexus的私服)。

    nexus私服启动脚本

    nexus私服的启动脚本,完成对nexus私服的启动,停止,重启,查看启动状态等功能

    nexus私服的操作

    该文档主要用户maven私用仓库的创建,以及创建后的使用说明以及通过eclipse插件的使用介绍。

    Maven仓库和搭建Nexus私服.pdf

    Maven 仓库和搭建Nexus私服 #资源达人分享计划 # 技术文档

    私服仓库nexus仓库

    用于搭建项目开发私服,解决因为jar包问题。一款不错的软件

    nexus私服说明.docx

    搭建nexus私服,为了满足有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过...

    nexus设置私有仓库和仓库管理

    nexus设置私有仓库和仓库管理

    Linux版Nexus私服.zip

    Deepin Linux配置私服nexus,Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的...

    Maven私服 Nexus2.14.2 配置了阿里云仓库

    Maven私服 Nexus2.14.2 配置了阿里云仓库,国内下载非常快 本人亲自搭建,日常开发中使用并验证

    Nexus3构建Docker镜像仓库

    Nexus3构建Docker镜像仓库 使用Nexus3搭建一个docker的私服

    nexus 2.3 jdk 的仓库

    maven nexus 仓库 私服 jdk 1.6 编译,企业级私服的首选

    nexus-2.15.0-04-bundle.zip

    Maven 搭建 Nexus 私服 Windows 和 Linux 都可 Nexus 仓库按照类型(Type)区分,主要分为以下 3 个类型: 代理仓库(proxy):用来代理远程公共仓库,如 Maven 中央仓库、JBoss 远程仓库。 宿主仓库(hosted):又...

    搭建nexus maven私服详解.pptx

    搭建nexus maven私服详解

    Nexus(Maven仓库私服)

    Nexus 是Maven仓库管理器,可用于搭建maven私服。在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。

    Nexus Repository Manager 3.28.1-01

    最新版本的 Nexus Repository Manager 3.28.1-01 Nexus是一个强大的Maven...Nexus在代理远程仓库的同时维护本地仓库,以降低中央仓库的负荷,节省外网带宽和时间,Nexus私服就可以满足这样的需要。 Nexus是一套“开箱

Global site tag (gtag.js) - Google Analytics