赞
踩
请根据自己需要选择对应版本
Nexus 3.x:下载链接地址
Nexus 2.x: 下载链接地址
这里以Nexus 2.15.1-02版本为例
将下载 Nexus 安装包解压到本地磁盘,可获得 nexus-2.15.1-02 和 sonatype-work 2 个目录,如下图。
其中:
nexus-2.15.1-02:该目录中包含了 Nexus 2.x 运行所需要的文件,如启动脚本、依赖 jar 包等。
sonatype-work:该目录中包含了 Nexus 2.x 生成的配置文件、日志文件等。
nexus-2.15.1-02文件夹包含以下内容
进入对应的 \nexus-2.15.1-02\bin\jsw 文件夹,根须操作系统版本选择合适的目录,由于我的操作系统是 Windows 10 64 位,所以我选择 windows-x86-64 目录,如下图所示。
其中:
以管理员身份运行install-nexus.bat安装nexus服务,安装后以管理员身份运行start-nexus.bat启动nexus服务。
访问 http://localhost:8081/nexus,结果如下图,则表示服务启动成功,否则表示服务启动失败。
若是安装服务,并且正常启动后无法在浏览器中打开对应主页,可能是8081端口被占用,或者Nexus安装目录 bin\jsw\conf\wrapper.conf中的java配置错误导致启动失败(两种错误,错误1:版本错误,错误2:路径错误)。
端口被占解决方法:打开\nexus-2.15.1-02-bundle\nexus-2.15.1-02\conf目录下的nexus.properties文件,修改端口application-port=8181,如下图。
版本配置错误解决方法:打开\nexus-2.15.1-02-bundle\nexus-2.15.1-02\bin\jsw\conf目录下的wrapper.conf文件,修改配置文件
wrapper.java.command=D:/Java/jdk1.8.0_321/bin/java
开启nexus服务后,在浏览器地址中输入localhost:8081/nexus,出现如下图结果表示正常启动。
点击LogIn登录,默认账号:admin,密码:admin123,登录成功后打开配置文件。
在仓库列表中,每个仓库都具有一系列属性:
由上图可知,Nexus 2.x 默认创建了 6 个仓库,我们称它们为 Nexus 内置仓库。
Maven Central:该仓库用来代理 Maven 中央仓库,其策略为 Release,只会下载和缓存中央仓库中的发布版本的构件。
Releases:策略为 Release 的宿主仓库,用来部署公司或组织内部的发布版本构件。
Snapshots:策略为 Snapshot 的宿主仓库,用来部署公司或组织内部的快照版本构件。
3rd party:策略为 Release 的宿主仓库,用来部署第三方发布版本构件,这些构件一般无法从任何远程仓库中获得。
Public Repositories:该仓库组将上述所有存储策略为 Release 的仓库聚合并通过统一的地址提供服务。
Nexus 仓库按照类型(Type)区分,主要分为以下 3 个类型:
代理仓库(proxy):用来代理远程公共仓库,如 Maven 中央仓库、JBoss 远程仓库。
宿主仓库(hosted):又称 Nexus 本地仓库,该仓库通常用来部署本地项目所产生的构件。
仓库组(group):用来聚合代理仓库和宿主仓库,为这些仓库提供统一的服务地址,以便 Maven 可以更加方便地获得这些仓库中的构件。
为了更加直观的理解仓库组、代理仓库和宿主仓库的概念,我们通过下图展示它们的用途和区别。
由上图可知:
首先,我们需要创建两个宿主仓库,分别用来存储从本地上传到 Nexus 的 Snapshot 和 Release 版本的构件,操作步骤如下。
1、点击左侧Repositories进入仓库
2、点击Add…中Hosted Repository创建宿主仓库
3、在宿主仓库配置界面填写对应信息,之后按save保存仓库
4、查看仓库列表可以发现,已经创建了对应的仓库
重复上述步骤,创建名为osrookie_Release_hosted的仓库
宿主仓库配置含义如下:
配置 | 说明 |
---|---|
Repository ID | 仓库 ID。 |
Repository Name | 仓库名称。 |
Repository Type | 仓库的类型,如 hosted、proxy 等等。 |
Provider | 用来确定仓库的格式,一般默认选择 Maven2。 |
Repository Policy | 仓库的策略。 |
Default Local Storage Location | 仓库默认存储目录,例如 D:\nexus-2.15.1-02-bundle\sonatype-work\nexus\indexer\osrookie_Snapshot_hosted_ctx。 |
Override Local Storage Location | 自定义仓库存储目录。 |
Deployment Policy | 仓库的部署策略。 |
Allow File Browsing | 用来控制是否允许浏览仓库内容,一般选择 true。 |
Include in Search | 用来控制该仓库是否创建索引并提供搜索功能。 |
Publish URL | 用来控制是否通过 URL 提供服务。 |
Not Found Cache TTL | 缓存某构件不存在信息的时间,默认取值为 1440,表示若某一个构件在仓库中没有找到,在 1440 分钟内再次接收到该构件的请求,则直接返回不存在信息,不会再次查找。 |
1、点击左侧Repositories进入仓库
2、点击Add…中Proxy Repository创建代理仓库
3、在代理仓库配置界面填写对应信息,之后按save保存仓库
4、查看仓库列表可以发现,已经创建了对应的仓库
代理仓库配置中,仓库 ID、仓库名称、Provider、Policy 以及 Default Local Storage Location 等配置的含义与宿主仓库相同,不再赘述。需要注意的是,代理仓库的 Repository Type 的取值是 proxy。
代理仓库配置表如下:
配置 | 说明 |
---|---|
Remote Storage Location | 远程仓库或中央仓库的地址,它是 Nexus 代理仓库最重要得配置,必须输入有效值,通常取值为 https://repo1.maven.org/maven2/。 |
Download Remote Indexes | 是否下载远程仓库的索引。 |
Auto Blocking Enabled | 是否启用自动阻止,即当 Nexus 无法连接中央仓库或远程仓库时,是否一直等待。取值为 true 表示不再等待,直接通知客户端无法连接,并返回。 |
File Content Validation | 是否启用文件内容校验。 |
Checksum Policy | 配置校验和出错时的策略,用户可以选择忽略、警告、记录警告信息或拒绝下载等多种策略。 |
Artifact Max Age | 构件缓存的最长时间,对于发布版本仓库来说,默认值为 -1,表示构件缓存后,就一直保存着,不再重新下载。对于快照版本仓库来说,默认值为 1440 分钟,表示每隔一天重新缓存一次代理的构件。 |
Metadata Max Age | 仓库元数据缓存的最长时间。 |
Item Max Age | 项目缓存的最长时间。 |
下面我们将创建一个仓库组,并将刚刚创建的 3 个仓库都聚合起来,操作步骤如下。
点击仓库列表上方的 Add… 按钮,在下拉菜单中选择 Repository Group,如下图。
1、点击左侧Repositories进入仓库
2、点击Add…按钮下的Repository Group按钮进入仓库组配置
3、在仓库组配置界面,填写对应信息,并将 osrookie_central_proxy、osrookie_Release_hosted 和 osrookie_Snapshot_hosted 3 个仓库添加到仓库组中,最后点击 Save 按钮进行保存,如下图。
4、查看仓库列表可以发现,已经创建了对应的仓库组
我们知道,Maven 中央仓库为用户提供了多达数十万构件,而 Nexus 可以代理所有的远程仓库(包括 Maven 中央仓库),可见 Nexus 仓库中构件的数量相当庞大。用户想要在这么多构件中,快速的查找自己所需的构件,一个最直接有效的方式就是:搜索。
Nexus 作为一款成熟的仓库管理工具,它通过维护仓库的索引提供了构件搜索功能,以便帮助用户方便快速地找到所需构件。
本节我们将详细为您介绍 Nexus 索引以及构件搜索功能。
Nexus 能够遍历仓库的所有内容,搜集它们的坐标,校验和以及所包含的 Java 类等信息,然后以索引( nexus-indexer) 的形式保存起来。Nexus 索引保存在 Nexus 安装目录下 \sonatype-work\nexus\indexer 目录中,该目录下每个子目录都代表 Nexus 中的一个仓库,用来存放各个仓库的索引 ,如下图所示。
大多数的远程公共仓库(例如,中央仓库)都维护了一个这样的索引,因此本地的 Nexus 在下载到这个索引后,就能在此基础上为用户提供构件搜索和浏览等服务。需要注意的是,并不是所有的公共仓库都提供了索引 ,对于那些没有提供索引的仓库来说,我们是无法对其进行搜索的。
Nexus 索引下载功能默认是关闭的,如果想在 Nexus 中搜索远程仓库中的构件,就需要先开启索引下载功能。
以 osrookie_central_proxy 代理仓库(代理 Maven 中央仓库)为例,在图 中 所示的位置就可以控制它的索引下载功能,true 表示开启索引下载,false 表示关闭索引下载。
开启索引下载功能后,右键单击仓库,点击Update Index更新仓库索引
点击导航栏中 Scheduled Tasks 链接,查看调度任务列表。若 Nexus 正在下载索引,我们就能看到如图所示位置的任务,其任务状态为 Running。在索引下载完毕后,该任务就会消失。
由于 Maven 中央仓库的内容较多,其索引文件比较大,因此 Nexus 下载文件所需的时间较长,需要我们耐心等待。
索引下载完成后,点击仓库列表中的 osrookie_central_proxy 代理仓库,然后在列表下方选择 Browse Index 选项卡,我们可以看到该仓库内容的树形结构,如图所示。
写累了,之后有时间再写。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。