服务器环境搭建-5 Nexus搭建与使用介绍

news2024/9/21 19:53:45

背景

本文介绍nexus的安装、配置和使用,之后通过案例的方式演示使用过程。

1.下载和安装

本文使用Nexus 3.x版本进行演示

下载地址:Download Nexus Repository OSS | Sonatype
国外网站下载速度较慢,也可以通过百度网盘下载(提取码:9999): nexus-3.37.3-02-unix.tar.gz。

2.安装

Nexus使用Java开发的项目,确保环境上已安装JDK

2.1 创建用户

建议使用非root用户启动Nexus(使用root时Nexus会提示不安全),这里可以提前创建一下nexus用户:

#创建nexus群组
groupadd nexus
#创建nexus用户,并指定群组为nexus
useradd nexus -g nexus

2.2 解压缩文件

准备将Nexus安装至/home/seong/nexus/目录下,将下载的资源包上传到该目录下后,执行解压缩文件:

cd /home/seong/nexus/
tar -zxvf nexus-3.37.3-02-unix.tar.gz

#更改属组
chown -R /home/seong/nexus/ nexus:nexus

得到的目录结构如下:
在这里插入图片描述
可以看到解压缩后有nexus-${version}sonatype-work两个文件夹,前者负责存放Nexus运行时的数据(理解为数据库),后者负责功能实现(理解为程序)。

2.3 配置Nexus

配置文件在nexus文件夹下, 只需要配置两处即可:
可在etc目录下的nexus-default.properties配置服务的监听端口,此时配置为9001:

[root@VM-4-6-centos etc]# cat nexus-default.properties
# 服务端口
application-port=9001
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
# 服务路径
nexus-context-path=/

# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=nexus-pro-feature
nexus.hazelcast.discovery.isEnabled=true

JVM运行相关的参数以及数据存储路径可以在bin/nexus.vmoptions文件中进行配置,此时配置堆内存使用1G, 其他使用的默认配置:

-Xms1024m
-Xmx1024m
-XX:MaxDirectMemorySize=2703m
-XX:+UnlockDiagnosticVMOptions
-XX:+LogVMOutput
-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties
-Dkaraf.data=../sonatype-work/nexus3
-Dkaraf.log=../sonatype-work/nexus3/log
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp
-Dkaraf.startLocalConsole=false
-Djdk.tls.ephemeralDHKeySize=2048
-Djava.endorsed.dirs=lib/endorsed

2.3 运行Nexus

进入bin目录,执行运行Nexus的指令:

cd bin

# 切换用户后,再启动Nexus
su nexus
./nexus start

nexus除了接收start-启动命令外,还接收stop-停止命令、restart-重启命令。
另外,调试Nexus时,可以通过./nexus run运行Nexux,可以交互式地查看启动日志。

2.4 通过页面配置Nexus

当步骤2.3中启动Nexus成功后,可通过http://ip:9001/访问Nexus:
在这里插入图片描述
用户名为admin, 首次登录时按照提示在服务器上得到密码,登录后需要修改密码:
在这里插入图片描述
输入密码后,建议选择Disable anonymous access禁止匿名访问:
在这里插入图片描述
重新输入用户名和密码,再次登录即可完成安装步骤。
在这里插入图片描述

3.配置仓库镜像地址

按下图步骤进入Nexus的仓库配置页面:
在这里插入图片描述
可以看到Nexus已经帮我们创建了四个仓库:
【1】maven-central: maven中央仓库,存放第三方库依赖包(proxy类型);
【2】maven-releases:本地(私服)的发布仓库, 存放本地发布包(hosted类型);
【3】maven-snapshots:本地的快照仓库,存放本地快照包(hosted类型);
【4】maven-public:public比较特殊,是一个分组(group类型), 包括了maven-central和maven-releases和maven-snapshots,如下所示:
在这里插入图片描述
用户可以只依赖这个public仓库,实现在三个仓库中下载资源。逻辑是:当下载请求到达Nexus仓库时,如果是本地包,会依次尝试从maven-releases和maven-snapshots中下载;如果是第三方库,则会尝试从maven-central仓库下载,如果当前maven-central仓库已有依赖的资源,如:logback-classic:ch.qos.logback:1.2.3已存在,则将资源返回给客户端;如果当前maven-central仓库不存在该依赖包,则Nexus会从配置的仓库下载依赖资源缓存在本地,然后再将资源返回给客户端。
maven-central仓库默认的地址为Maven中央仓库,地址在国外。因此需要为其配置镜像:
在这里插入图片描述
这里使用的阿里云的镜像地址: http://maven.aliyun.com/nexus/content/groups/public/.
至此,Nexus环境已经安装和配置完成。

4.本地配置Nexus仓库

在本地Maven的settings文件中配置Nexus:

<servers>
	<server>
		<id>nexus</id>
		<username>admin</username>
		<password>Nexus登录密码</password>
	</server>
	 </servers>
	 <mirrors>
	 	<mirror>
		<id>nexus</id>
		<name>nexus maven</name>
		<mirrorOf>*</mirrorOf>
		<url>http://服务器地址:9001/repository/maven-public/</url>
	</mirror>
 </mirrors>

配置后,以下将结合一个上传和下载案例测试Nexus是否可以正常工作。

5.案例

5.1 下载案例

在这里插入图片描述
由于环境是全新安装,此时maven-central仓库中没有资源:
在这里插入图片描述
本地创建一个maven项目, 仅添加一个日志依赖logback-classic:ch.qos.logback:1.2.3:

<dependency>
    <artifactId>logback-classic</artifactId>
    <groupId>ch.qos.logback</groupId>
    <version>1.2.3</version>
</dependency>

执行mvn clean package时,将通过本地->nexu->阿里云镜像的顺序下载依赖:
在这里插入图片描述下载完成后,再次查看maven-central仓库:
在这里插入图片描述
此时已经将依赖资源缓存到了本地。

5.2 下载案例

新环境没有本地包上传记录,因此maven-releases和maven-snapshots记录为空:
在这里插入图片描述
继续5.1中的案例,将案例项目的坐标信息修改为:

<groupId>com.seong</groupId>
<artifactId>EwenFileSystem</artifactId>
<version>1.0.0</version>

并在pom.xml中添加distributionManagement指定快照和release版本包对应上传仓库的地址:

<distributionManagement>
    <repository>
        <id>nexus</id>
        <name>nexus-releases</name>
        <url>http://服务器IP:9001/repository/maven-releases/</url>
    </repository>

    <snapshotRepository>
        <id>nexus</id>
        <name>nexus-snapshots</name>
        <url>http://服务器IP:9001/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

案例完整的pom文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.seong</groupId>
    <artifactId>EwenFileSystem</artifactId>
    <version>1.0.0</version>

    <dependencies>
        <dependency>
            <artifactId>logback-classic</artifactId>
            <groupId>ch.qos.logback</groupId>
            <version>1.2.3</version>
        </dependency>
    </dependencies>

    <distributionManagement>
        <repository>
            <id>nexus</id>
            <name>nexus-releases</name>
            <url>http://服务器IP:9001/repository/maven-releases/</url>
        </repository>

        <snapshotRepository>
            <id>nexus</id>
            <name>nexus-snapshots</name>
            <url>http://服务器IP:9001/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
</project>

执行mvn clean package打包完成后,再执行mvn deploy操作:
在这里插入图片描述
由于当前项目的坐标不是快照版本,deploy会将包推送至maven-releases仓库;通过Nexus网页查看仓库信息:
在这里插入图片描述
可以看到案例包已经成功推送到了Nexus,后续其他客户端可以从Nexus上下载EwenFileSystem依赖包。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2113843.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爆改YOLOv8|利用图像分割网络UNetV2改进yolov8主干-即插即用

1&#xff0c;本文介绍 U-Net v2 通过引入创新的跳跃连接设计来提升医学图像分割的精度。这一版本专注于更有效地融合不同层级的特征&#xff0c;包括高级特征中的语义信息和低级特征中的细节信息。通过这种优化&#xff0c;U-Net v2 能够在低级特征中注入丰富的语义&#xff…

wireshark安装及抓包新手使用教程

Wireshark是非常流行的网络封包分析软件&#xff0c;可以截取各种网络数据包&#xff0c;并显示数据包详细信息。常用于开发测试过程各种问题定位。本文主要内容包括&#xff1a; 1、Wireshark软件下载和安装以及Wireshark主界面介绍。 2、WireShark简单抓包示例。通过该例子学…

JetBrains Aqua安装步骤和基本配置

一、安装步骤 下载链接&#xff1a;https://www.jetbrains.com.cn/aqua/ 1、点击下载按钮。 2、点击下载IDE&#xff0c;浏览器下载.exe。&#xff08;如果是mac或linux可选择对应的下载安装包&#xff09; 3、双击.exe文件&#xff0c;点击下一步。 4、可点击【浏览】选择安装…

在Webmin上默认状态无法正常显示 Mariadb V11.02及以上版本

OS: Armbian OS 24.5.0 Bookworm Mariadb V11.02及以上版本 Webmin&#xff1a;V2.202 小众问题&#xff0c;主要是记录一下。 如题 Webmin 默认无法 Mariadb V11.02及以上版本 如果对 /etc/webmin/mysql/config 文件作相应调整就可以再现Mariadb管理界面。 路径文件&#xff…

风格控制水平创新高!南理工InstantX小红书发布CSGO:简单高效的端到端风格迁移框架

论文链接&#xff1a;https://arxiv.org/pdf/2408.16766 项目链接&#xff1a;https://csgo-gen.github.io/ 亮点直击 构建了一个专门用于风格迁移的数据集设计了一个简单但有效的端到端训练的风格迁移框架CSGO框架&#xff0c;以验证这个大规模数据集在风格迁移中的有益效果。…

2024年,女生到底适合转行ui设计还是软件测试?

作为2024年的就业选择来说&#xff0c;软件测试和UI设计发展都挺不错的 选择这两个方向转行的女生很多。但具体选择测试还是UI设计&#xff0c;最好还是根据你个人的兴趣爱好以及长期的发展路径去选择 比如&#xff1a;薪资、工作稳定性、后续晋升空间、学习难度等等方面~ 如…

HCIP:一次性搞定OSPF基础

OSPF 一&#xff0c; OSPF基础1. 技术背景&#xff08;RIP中存在的问题&#xff09;OSPF协议特点OSPF三张表OSPF数据表头部数据包内容&#xff1a;helloDBD&#xff08;数据库描述报文&#xff09;LSRLSULSack OSPF工作过程1. 确认可达性&#xff0c;建立邻居2-way前&#xff0…

掌握Hive函数[2]:从基础到高级应用

目录 高级聚合函数 多进一出 1. 普通聚合 count/sum... 2. collect_list 收集并形成list集合&#xff0c;结果不去重 3. collect_set 收集并形成set集合&#xff0c;结果去重 案例演示 1. 每个月的入职人数以及姓名 炸裂函数 概述 案例演示 1. 数据准备 1&#xff09;表…

接口自动化三大经典难题

目录 一、接口项目不生成token怎么解决关联问题 1. Session机制 2. 基于IP或设备ID的绑定 3. 使用OAuth或第三方认证 4. 利用隐式传递的参数 5. 基于时间戳的签名验证 二、接口测试中网络问题导致无法通过怎么办 1. 重试机制 2. 设置超时时间 3. 使用模拟数据 4. 网…

nmon服务器监控工具使用

nmon&#xff1a;是一个分析linux服务器性能的免费工具&#xff0c;可以用来帮助我们整体性的分析服务端的CPU&#xff0c;内存&#xff0c;网络&#xff0c;IO&#xff0c;虚拟内存等指标 下载nmon.jar包及分析文件&#xff1a;百度网盘 链接: 提取码: 0000 一、nmon配置及使…

JavaScript (变量,var,Let,Const)

目录 JavaScript 变量 JavaScript 变量 JavaScript 标识符 声明&#xff08;创建&#xff09; JavaScript 变量 JavaScript Let 全局作用域 函数作用域 块作用域&#xff08;Let) 重新声明变量 JavaScript Const 在声明时赋值 JavaScript 变量 JavaScript 变量 Jav…

2024 年高教社杯全国大学生数学建模竞赛题目【A/B/C/D/E题】完整论文+代码结果

2024国赛C题参考论文https://download.csdn.net/download/qq_52590045/89718370网盘链接形式&#xff0c;在里更新 2024国赛A题参考论文https://download.csdn.net/download/qq_52590045/89718367 网盘链接形式&#xff0c;在里更新 2024国赛D题参考论文https://download.…

数据库面试题学习

B树和B树 B树 排好序的 节点内部有多个元素 B树 排好序的 节点内多个元素 叶子节点有指针&#xff08;双向指针&#xff09; 非叶子节点冗余了一份在叶子节点 mysql定义B树 InnoDB B树是B树的升级版~ InnoDB b树是怎么产生的 mysql 页 目录 16KB 自增id uuid 一页最多可以存储…

PPPoE配置学习笔记

企业内网和运营商网络如上图所示&#xff0c;中间交换机模拟运营商传输设备。公网IP段&#xff1a;12.1.1.0/24。内网IP段&#xff1a;192.168.1.0/24。PPPoE拨号采用CHAP认证&#xff0c;用户名&#xff1a;admin 密码&#xff1a;admin123 实验要求&#xff1a; 将R1设置为…

基于STM32的多功能车位锁设计

本设计基于STM32的多功能车位锁&#xff0c;该系统主要包括&#xff1a;测距模块、光强采集模块、主控芯片模块、显示模块、摄像模组等。系统以STM32单片机作为主控芯片用来对系统中的外设进行控制并且对传输过来的数据进行处理。通过K210模块来实现图像识别的功能检测车牌是否…

Zookeeper基本原理

1.什么是Zookeeper? Zookeeper是一个开源的分布式协调服务器框架&#xff0c;由Apache软件基金会开发&#xff0c;专为分布式系统设计。它主要用于在分布式环境中管理和协调多个节点之间的配置信息、状态数据和元数据。 Zookeeper采用了观察者模式的设计理念&#xff0c;其核心…

kaggle竞赛宝典 | Mamba模型综述!

本文来源公众号“kaggle竞赛宝典”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;Mamba模型综述&#xff01; 型语言模型&#xff08;LLMs&#xff09;&#xff0c;成为深度学习的基石。尽管取得了令人瞩目的成就&#xff0c;Tra…

物联网之PWM呼吸灯、脉冲、LEDC

MENU 前言原理硬件电路设计软件程序设计analogWrite()函数实现呼吸灯效果LEDC输出PWM信号 前言 学习制作呼吸灯&#xff0c;通过LED灯的亮度变化来验证PWM不同电压的输出。呼吸灯是指灯光在单片机的控制之下完成由亮到暗的逐渐变化&#xff0c;感觉好像是人在呼吸。 原理 脉冲宽…

【Unity小技巧】URP管线遮挡高亮效果

前言 在URP渲染管线环境下实现物体遮挡高亮显示效果&#xff0c;效果如下&#xff1a;Unity URP遮挡高亮 实现步骤 创建层级&#xff0c;为需要显示高亮效果的物体添加层级&#xff0c;比如Player 创建一个材质球&#xff0c;也就是高亮效果显示的材质球找到Universal Render…

固态硬盘装系统有必要分区吗?

前言 现在的新电脑有哪一台是不使用固态硬盘的呢&#xff1f;这个好像很少很少了…… 有个朋友买了一台新的笔记本电脑&#xff0c;开机之后&#xff0c;电脑只有一个分区&#xff08;系统C盘500GB&#xff09;。这时候她想要给笔记本分区…… 这个真的有必要分区吗&#xf…