详解Nexus的安装、如何创建、配置宿主仓库 创建Maven项目

目录

一、Nexus的介绍:

私有仓库:

Nexus2.x 和Nexus3.x的区别:

二、Nexus3.x的安装步骤:

下载方式:

①Nexus官网下载链接

②百度网盘链接 nexus-3.54.1-01-win64.zip        提取码:8v1m

win + R 输入services.msc 回车   向下翻能看见nexus

打开浏览器 在上方地址栏输入:http://localhost:8081/

仓库组、代理仓库和宿主仓库之间的关系

修改代理地址

三、配置自己的宿主仓库

四、修改setting.xml文件

五、尝试创建一个Maven项目

源码编译与测试

执行命令“mvn test”运行测试案例并进行测试

代码打包

执行命令“mvn site”,自动生成站点信息

生成API Doc文档


一、Nexus的介绍

Nexus Repository Manager(简称Nexus)是Sonatype公司开发的一款强大仓库管理器,它简化了仓库维护,强化了私有仓库管理。

通过Nexus,用户可集中管理、控制并访问软件组件和依赖项,确保私有仓库的安全稳定。Nexus提供权限控制和访问限制,防止未经授权的访问,增强数据保护。

它还支持缓存和代理设置,提升内部网络下载速度,与构建工具和IDE无缝集成,方便开发人员获取依赖项。

私有仓库:

Nexus2.x 和Nexus3.x的区别:

① Nexus 3在Blob Store方面提供了更高的性能、可扩展性和可靠性,并改进了文件管理和元数据管理。这种改进使得Nexus 3在存储和处理数据方面更为高效和可靠。

② Nexus 3相对于Nexus 2拓展了更多的仓库类型支持。除了Maven仓库,Nexus 3还支持npm、Docker、Bower、RubyGems和Raw(原始文件)等多种仓库类型。这使得Nexus 3成为一个更全面的仓库管理平台,适用于不同的构件和包管理需求。

③ Nexus 3的权限管理系统也得到了改进,提供了更细粒度的权限控制。它支持LDAP、Active Directory和OAuth等身份验证方法,使得用户和角色的访问权限更加灵活和可定制。相比之下,Nexus 2的权限管理相对较为简单。

④ 在用户界面方面,Nexus 3进行了重新设计和改进,提供了更好的用户体验。同时,Nexus 3还引入了新的插件模型,使得插件的开发更加灵活和可扩展。

⑤ 版本区别:OSS是开源版本,可免费使用   Pro版本收费

二、Nexus3.x的安装步骤:

下载方式:

Nexus官网下载链接

    进去之后在右边有一个表单需要提交信息 勾勒两笔就能进去

    然后选择自己想要的版本下载即可

百度网盘链接 nexus-3.54.1-01-win64.zip
        提取码:8v1m

下载完成之后解压出现以下两个文件夹

接下来就是通过命令安装并启动 Nexus

win键搜索cmd 选择 以管理员身份运行

切换到nexus-3.54.1-01-win64中nexus-3.54.1-01里bin目录中

我的安装路径是   D:\WorkSpaces\NexusSpace\nexus-3.54.1-01-win64\nexus-3.54.1-01\bin

所以要从c盘切换到D盘 然后执行命令

nexus.exe /install
nexus.exe /start

win + R 输入services.msc 回车   向下翻能看见nexus

打开浏览器 在上方地址栏输入:http://localhost:8081/

waiting....然后出现这个页面

点击右上角Sign Up可以登入自己账号

默认Username:admin

默认Password:按照Sign In给的提示路径去找 我这里是红色方框中的路径

用记事本打开查看密码

在仓库列表中每个仓库都有这几个属性:

Type(类型):仓库的类型主要分为三种:

  • proxy(代理仓库):用于代理远程公共仓库,如 Maven 中央仓库或 JBoss 远程仓库。代理仓库能够缓存从远程仓库获取的构件,从而加速本地访问速度。

  • group(仓库组):用于聚合代理仓库和宿主仓库,为这些仓库提供统一的访问地址。通过仓库组,Maven 可以更方便地访问这些仓库中的构件。

  • hosted(宿主仓库):也称为 Nexus 本地仓库,主要用于存储本地项目产生的构件。宿主仓库可进一步细分为 releases(发行版仓库)和 snapshots(快照版仓库)。Releases 用于存储稳定版本的构件,而 Snapshots 用于存储开发中的、尚未稳定的版本。Nexus 严格区分这两种类型的仓库,确保不同类型的构件不会被误上传。

URL(路径):仓库的访问地址,用于定位并获取仓库中的构件。通过该 URL,Maven 可以方便地访问仓库中的资源。

Format(格式):仓库的格式决定了仓库中存储的构件类型。常见的格式包括 maven2 和 nuget。由于我们主要使用 Java 进行开发,因此新建仓库时通常会选择 maven2 格式,以兼容 Maven 项目的依赖管理。

Status(状态):仓库的状态决定了其是否可以被访问。只有处于在线状态的仓库才能被 Maven 或其他工具正常访问和获取构件。

仓库组、代理仓库和宿主仓库之间的关系

  - 代理仓库 (proxy):用 P 表示  
- 宿主仓库 (hosted):用 H 表示  
  - 发行版仓库 (releases):用 Hr 表示  
  - 快照版仓库 (snapshots):用 Hs 表示  
- 仓库组 (group):用 G 表示  

  
     +-------------+  
     |     G     |  
     | 仓库组    |  
     +-----+-----+  
           |  
           |  
+-----+    |    +-----+  
|  P1 |    |    |  P2 |  
|代理 |    |    |代理 |  
|仓库 |    |    |仓库 |  
+-----+    |    +-----+  
           |  
           |  
+-----+    |    +-----+    +-----+  
|  Hr |    |    |  Hs |    |  P3 |  
|发行 |    |    |快照 |    |代理 |  
|版仓 |    |    |版仓 |    |仓库 |  
|库  |    |    |库  |    |     |  
+-----+    |    +-----+    +-----+  
           |  
           |  
           V  
       +-----+  
       |  H  |  
       |宿主 |  
       |仓库 |  
       +-----+  
  

 解释: - 仓库组 G 聚合了代理仓库 P1、P2 和 P3,以及宿主仓库 H(包括发行版 Hr 和快照版 Hs)。 - 代理仓库 P1、P2 和 P3 用于代理远程公共仓库,缓存构件以加速本地访问。 - 宿主仓库 H 用于存储本地项目产生的构件,其中 Hr 存储稳定版本的构件,Hs 存储开发中的快照版本。 - 仓库组 G 提供了一个统一的访问地址,Maven 可以通过这个地址方便地访问代理仓库和宿主仓库中的构件。

修改代理地址

因为默认的maven中心仓库地址下载速度一般,通常都用阿里云的镜像下载依赖

选择maven-central仓库点击进去

修改默认地址为:https://maven.aliyun.com/repository/public

https://maven.aliyun.com/repository/public

三、配置自己的宿主仓库

在新建宿主仓库表中,填写仓库的IDName以及仓库策略

release表示发布版构件,snapshot表示快照版构件)

点击save按钮,完成策略为Release的宿主仓库创建。同理,创建策略为Snapshot的宿主仓库。

接下来,需要添加权限(Privileges)。在左边导航栏的Security中点击Privileges,在右框中点击Add按钮,选择Repository Target Privilleges添加发布版和快照版

创建具有相应权限的角色(Role)

最后创建用户,这里需要注意

User ID就是远程仓库的usernamepassword就是远程仓库的password

四、修改setting.xml文件

因为远程仓库需要安全认证,所以需要在settings.xml中进行配置。打开settings.xml,在servers标签下添加右侧代码。

这里的用户名和密码对应之前创建的useruserIdpassword,另外id元素对应项目pom.xmldistributionManagement里的id元素。

<server>
	<id>pro-snapshot</id>
	<username>foo</username>
	<password>123456</password>
</server>
	
<server>
	<id>pro-release</id>
	<username>foo</username>
	<password>123456</password>
</server>

五、尝试创建一个Maven项目

例如在D盘新建一个名为MVN的空白文件夹,打开CMD窗口,进入到该文件夹目录下,并输入如下命令:

mvn archetype:generate "-DgroupId=com.companyname.demo" "-DartifactId=unit1Demo1-FirstMvn" "-DarchetypeArtifactId=maven-archetype-quickstart" "-DinteractiveMode=false"
DgroupId :组织名,公司网址的反写 + 项目名称
DartifactId :项目名 - 模块名
DarchetypeArtifactId :指定 ArchetypeId maven-archetype- quickstart ,创建一个简单的 Java 应用
DinteractiveMode :是否使用交互模式

 

源码编译与测试

接下来我们用Maven命令来编译和测试一下,打开命令行窗口,将目录切换到工程目录下,执行命令“mvn compile”,编译源代码。


执行命令“mvn test”运行测试案例并进行测试


代码打包

执行命令“mvn install”,将当前代码打成jar包,安装到Maven的本地目录下,其他Maven工程只要指定坐标就可以使用。


生成站点信息

打开工程的pom.xml文件,在最外层的project标签内添加下方代码:

<reporting>
     <plugins>
         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-javadoc-plugin</artifactId>
             <version>2.10.4</version>
         </plugin>
         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-project-info-reports-plugin</artifactId>
             <version>2.9</version>
         </plugin>
     </plugins>
 </reporting>

执行命令“mvn site”,自动生成站点信息


执行结束后,我们可以查看工程目录下的target目录,可以看到该目录下自动添加了site目录,该目录下即为生成的站点信息页面。打开其中的index.html,可以看到对项目相关信息的描述。


生成API Doc文档

执行命令“mvn javadoc:javadoc,自动生成API Doc文档。


打开项目目录D:\MVN\unit1Demo1-FirstMvn\target\site\apidocs,该目录下就是当前工程中代码的API Doc文档,打开其中的index.html即可查看相关信息。

  • 38
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值