搭建Nexus私服部署项目

本文详述了为何要搭建Maven私服,如提高构建速度、离线支持和安全控制,并提供了详细的Nexus私服搭建步骤,包括下载、配置、运行及仓库管理。通过配置私有仓库,可以方便地管理项目依赖,提升团队协作效率。最后,文章介绍了如何在项目中引用Nexus库并部署。
摘要由CSDN通过智能技术生成

什么是 Maven

Maven这个单词来自于意第绪语(犹太语),意为知识的积累

Maven 项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

image-20231012185156573

Maven 发展史

image-20231012185014791

Maven 的体系结构

image-20231012185034819

为什么要搭建私服

  1. 本地缓存和提高构建速度:Maven 私服可以缓存远程仓库中的依赖项,当项目构建时,首先检查私服是否已经下载过所需的依赖项,如果有,则直接从私服获取,从而减少了对远程仓库的依赖和下载时间,提高了构建的速度。
  2. 离线构建支持:Maven 私服允许在没有互联网连接的环境下进行构建。通过在私服中缓存所需的依赖项,可以在没有网络连接时继续构建项目。
  3. 安全性和稳定性:搭建私服可以确保项目所依赖的库和框架的稳定性和安全性。由于私服可以控制哪些库和版本可用,可以避免项目意外依赖于不受信任的或不稳定的库。
  4. 本地定制和部署:私服允许你发布和管理自己的构建产物。你可以将自己的库、框架或插件发布到私服中,并在项目中引用和使用它们。这样可以更好地管理和共享项目内部的共享组件。
  5. 统一管理和团队协作:搭建私服可以集中管理团队或组织内部使用的共享库和构建产物。团队成员可以从私服中获取所需的依赖项,确保使用的是统一的版本和配置,以提高团队协作和项目的一致性。

众所周知国内有非常强大的防火墙,所以从外网拉取依赖异常艰难。

虽然国内有阿里云公共仓库,但是也有一些依赖不存在阿里云仓库中或仓库有时候连接不上。

这时候 Maven 私服的重要性就体现出来了。

image-20231012185436786

如何搭建 Maven 私服

下载安装

下载 Nexus

访问官网: https://help.sonatype.com/repomanager3/product-information/download

image-20231012190253673

创建文件夹 nexus

image-20231012190730709

解压压缩包

如果是 Windows 上下载的,上传压缩包到 nexus 文件夹。

tar -zxvf <压缩包名称>

image-20231012191217814

配置 Nexus

进入 nexus-3.61.0-02/bin 文件夹下

image-20231012191941876

编辑nexus.vmoptions文件

image-20231012191545018

根据自己机器内存大小,适当配置内存。内存太小会启动 Nexus 会失败,最好将-Xms-Xmx的值调整相同

我是16G的运行内存,所以我把-Xms-Xmx设置成了4096m,MaxDirectMemorySize设置成了5120m

-Xms-Xmx 是两个常用的 JVM 参数,用于指定初始堆大小(Initial Heap Size)和最大堆大小(Maximum Heap Size)。

MaxDirectMemorySize 是 Java 虚拟机(JVM)参数之一,用于设置直接内存的最大大小。

Tips:通常情况下,将 -Xms-Xmx 设置为相同的值是个好实践。这是因为:

  1. 性能和内存利用率:将 -Xms-Xmx 设置为相同的值可以避免 JVM 在运行时动态调整堆大小,从而减少堆大小调整带来的性能开销。此外,相同的堆大小可以更好地利用内存,避免过多的内存浪费。
  2. 避免频繁的堆大小调整:如果 -Xms-Xmx 设置为不同的值,JVM 在启动时会分配 -Xms 指定的堆大小,并在达到这个大小后才开始进行垃圾回收。如果系统的实际内存需求超过了 -Xms 的大小,JVM 将不得不频繁地进行堆大小调整,这可能导致性能下降。
配置端口

默认端口为8081,如果需要在要在文件中配置端口。(如果不需改端口,此处可以忽略)

  • 进入nexus-3.61.0-02/etc文件夹,找到nexus-default.properties这个配置文件

    image-20231012192559690

  • 编辑nexus-default.properties

    image-20231012192653262

    application-port改成想要对外开放的端口后保存并退出

  • 对外开放端口

    可以先通过firewall-cmd --list-ports查看已经对外开放的端口,如果<端口号>/tcp没有对外开放,再执行下列命令

    firewall-cmd --add-port=<端口号>/tcp --permanent
    firewall-cmd --reload
    

image-20231012193230257

运行 Nexus

启动 Nexus

nexus-3.61.0-02/bin文件夹下执行命令./nexus start

image-20231012193529131

看到Starting nexus就算启动成功

访问 Nexus 后台

在浏览器中输入<IP地址>:<端口号>

image-20231012193705965

等待加载完毕即可见到控制台界面

image-20231012193809902

点击右上角的Sign in注册管理员账号会出现以下界面

img

usernameadmin,密码则通过查看提示中给的路径下的文件获取

img

注册成功后会出现以下界面

image-20231012194111528

点击 Next 之后设置密码

image-20231012194138297

image-20231012194229384

配置私有仓库

maven-releases (Version policy=Release)默认只允许上传不带SNAPSHOT版本尾缀的包,默认部署策略是Disable redeploy 不允许重复上传相同版本号信息的jar,避免包版本更新以后使用方无法获取到最新的包。

maven-snapshots (Version policy=Snapshot)只允许上传带SNAPSHOT版本尾缀的包,默认部署策略是Allow redeploy,允许重复上传相同版本号信息的jar,每次上传的时候会在jar的版本号上面增加时间后缀信息。

maven-central 中央仓库的拷贝,如果环境可以访问中央仓库,则可以获取到相关的包,否则没用

maven-public 仓库组,不是实际个一个仓库地址,只是将现有的组合到一次,可以通过它看到所属组内全部仓库的jar信息

image-20231012194451947

img

选择maven2(hosted)

proxy:这是代理方式,它是用来代理中央仓库的,例如我们依赖的包在本地仓库没有,就会到私服获取,私服没有的话,会到中央仓库先把包下载到这里,然后再下载到本地仓库;

hosted:指的是我们公司或团队内部的包,并且 hosted 类型的仓库会分为 releases 和 snapshots 两个,前者是正式版,后者一般是开发测试版;

group:它的目的就是把多个仓库组合起来,然后我们项目中只需要配置上这个类型的仓库地址,就可以把它里面组合的几个仓库都关联上。

image-20231012194649371

命名仓库的唯一标识符,选择Version policyMixed,Deployment policyAllow redeploy

Version Policy(版本策略)是用于控制和管理存储库中的构件版本的规则和行为。它定义了对于特定组织或项目的构件版本如何进行创

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值