前端时间准备考试,一个月没有更新,考试完毕继续更新博客...
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 任务会合并其包含的所有仓库的索引。
相关推荐
Nexus私服搭建步骤详解 Nexus 私服是一种流行的 Maven 仓库管理工具,广泛应用于企业级软件开发中。下面是一步步搭建 Nexus 私服的详细教程。 第一步:下载 Nexus 安装文件 首先,需要下载 Nexus 的安装文件,...
**二、Maven使用Nexus私服配置** 1. **Maven配置**:在Maven的setting.xml文件中,你需要配置一个镜像(mirror),将所有仓库的下载请求重定向到Nexus。例如,将id设为'nexus',url指向你的Nexus服务器地址,并设置...
在这个私服中,Nexus 提供了三个不同的仓库类型:nuget.org-proxy、nuget-hosted 和 nuget-group。 1. nuget.org-proxy:代理仓库,这个仓库会代理 nuget.org 的包请求。如果本地有该包,它就会从本地提供,如果...
1. Maven配置:在`~/.m2/settings.xml`文件中,添加Nexus私服的服务器配置,并在`<mirrors>`标签内配置镜像,确保Maven优先从Nexus获取依赖。 2. Gradle配置:在`build.gradle`文件中,可以使用`mavenCentral()`替换...
它广泛应用于Maven、Gradle等构建工具,作为一个私有化仓库(通常称为“私服”),帮助开发者存储、检索和控制对内部和外部依赖的访问。在本文中,我们将深入探讨Nexus在Linux和Windows环境下的配置和使用。 **一、...
Nexus是一款功能强大的Maven仓库管理器,常被称为“私服”,因为它可以作为本地私有的Maven仓库使用。这款工具能够帮助开发团队有效地管理和分发Java软件构件,如JAR、WAR和其他Maven依赖。Nexus提供了对不同类型的...
Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不...
【私服仓库nexus仓库】 在IT行业中,"私服仓库"是指私有化的软件包存储库,主要用于企业内部的软件依赖管理。Nexus是Sonatype公司推出的一款强大的Maven仓库管理器,也是广受欢迎的私服解决方案。它允许团队在一个...
在Linux环境下搭建Nexus私服,可以有效地管理和控制企业的内部依赖,提高开发效率并保障代码质量。 一、Nexus的主要功能 1. **中央仓库代理**:Nexus可以作为Maven中央仓库的代理,为本地开发团队提供快速的依赖...
Maven 私服 Nexus3 是一个企业级的仓库管理工具,它允许开发团队集中管理和分发软件构件,包括 Maven 的 JAR 包、NPM 包、Gradle 构件等。在进行大型项目开发时,私有 Maven 仓库能够提高构建速度,降低对公网依赖,...
#### 二、Nexus 下载与安装 ##### 2.1 下载 Nexus - **官方下载地址**:[Sonatype Nexus](http://www.sonatype.org/nexus/go) - **推荐版本**:选择适合当前需求的版本,比如 Nexus 2.x 版本。 - **下载文件**:...
本文将深入探讨如何在日常开发中让Maven与Nexus协同工作,以优化Java项目的构建流程,提高团队效率。 首先,Maven是一个强大的项目管理和集成工具,基于项目对象模型(Project Object Model, POM)。它通过读取POM....
【Nexus私有仓库在Windows环境下的安装与配置】 Nexus是Sonatype公司推出的一款开源的Maven仓库管理器,它作为一个中央存储库,可以用来托管各种类型的艺术品(如JARs、WARs、文档等),并为开发团队提供了一个集中...
#### 二、Nexus私服搭建步骤 ##### 第一步:下载nexus.war包 首先,需要下载 Nexus 的 `.war` 文件。这个文件可以从官方站点获取,或者从可信的第三方资源处下载。下载完成后,将 `.war` 文件拷贝到 Tomcat 的 `...
在 Maven 的配置文件中,可以配置仓库组的 URL,以便从 Nexus 下载构件。 Maven 的安装步骤 Maven 的安装步骤包括: * 下载 Maven 的安装包 * 解压缩安装包 * 配置 Maven 的环境变量 * 验证 Maven 的安装是否成功...
二、为什么需要Nexus私服 1. **集中管理**: Nexus可以帮助组织统一管理所有的依赖库,便于版本控制和权限管理。 2. **加速构建**: 通过本地代理远程仓库,减少网络延迟,提升构建效率。 3. **安全控制**: 可以设置...