如何在Linux上部署Nexus私服

news2024/11/15 5:04:12

如何在Linux上部署Nexus私服

Nexus 是一个强大的仓库管理解决方案,由Sonatype公司开发。它主要用于软件开发中各种依赖包和构件的存储、管理和分发。

1、为什么要部署nexus?

  1. 统一管理依赖:在软件开发过程中,项目通常会依赖大量的第三方库或构件。直接从公共仓库如Maven Central、JCenter等下载,速度可能受限且不稳定。通过搭建私有的Nexus仓库,可以作为这些公共仓库的代理和缓存,提高依赖下载速度,并能在网络异常时继续提供服务。
  2. 内部构件共享:团队内部开发的构件可以直接上传到私有Nexus仓库中,方便团队成员之间共享和复用。这样既便于版本管理,又能保护内部知识产权,避免敏感代码直接暴露在外。
  3. 权限控制与审计:Nexus提供了详细的权限控制机制,可以根据组织结构和角色为不同用户提供对仓库的不同操作权限,例如发布、下载等。同时,它还支持记录所有上传、下载及构建活动的日志,便于进行合规审计和问题追踪。
  4. 构建流程优化:在CI/CD流程中集成Nexus,能够更好地控制构件发布的整个生命周期,包括SNAPSHOT版本管理和发布版本审批等,有助于提升持续集成和持续交付的效率。
  5. 多类型仓库支持:Nexus不仅支持Java/Maven生态系统的构件,还支持npm、NuGet、Docker等其他类型的包管理仓库,满足多样化的开发需求。

2、如何下载nexus?

请添加图片描述

1、下载最新版本的nexus 下载地址:http://www.sonatype.org/nexus/go (网站为国外网站,国内下载可能会很慢甚至无法下载,需要翻墙下载)

2、 博主已下载好目前最新版本的nexus放置于阿里云盘当中,有需要的小伙伴可通过云盘地址进行下载。 https://www.alipan.com/s/Z42R3FPtEyx 提取码: wp46 点击链接保存

3、如何安装nexus?

1、解压安装包:nexus-3.64.0-04-mac.tgz (博主下载的OS X的版本)

2、进入解压的目录:nexus-3.64.0-04-mac,里面有两个文件夹:nexus-3.64.0-04sonatype-work

Sonatype-work 是在安装 Nexus 后,用于存储其运行时数据和配置信息的工作目录。这个目录不在程序的安装路径下,通常是一个独立的数据存储位置,包含了所有的仓库配置、索引文件、缓存以及日志等重要数据。

进入 nexus-3.64.0-04/bin 运行 ./nexus run

请添加图片描述

出现 Started Sonatype Nexus OSS 3.64.0-04 则表示运行成功,可打开http://localhost:8081/进行访问

修改默认接口则在nexus-3.64.0-04-mac/nexus-3.64.0-04/etc/nexus-default.properties文件修改application-port,比如修改为 8888

请添加图片描述

3、配置nexus全局命令运行

vim ~/.bash_profile

export NEXUS_HOME="/Users/pengyangyan/Downloads/nexus-3.64.0-04-mac/nexus-3.64.0-04"
export PATH="$PATH:$NEXUS_HOME/bin:PATH"

source ~/.bash_profile

此时就可以在任意目录运行nexus命令。

注意:mac电脑在解压nexus-3.64.0-04-mac.tgz 时,如果使用第三方解压工具,会造成nexus依赖jar包名称错误同时无法识别出jar包导致nexus无法运行,所以解压的时候最好使用mac自带的解压工具进行解压

4、登陆nexus

请添加图片描述

点击右上角Sign in 进行登陆 用户名: admin 。运行命令 cat /nexus-3.64.0-04-mac/sonatype-work/nexus3/admin.Password 可查看密码,登陆成功后会提示进行密码修改。

4、项目应用nexus进行包管理

请添加图片描述

1、点击Create repository 可创建其他类型的仓库,对于Java,里面已经内置了maven相关仓库,所以我这里就没有在进行创建,直接使用里面已有的仓库。

  1. Hosted(宿主)仓库
    • Maven Hosted:用于部署和管理内部开发团队编写的Java项目构件,包括Releases和Snapshots两种子类型。
      • Releases仓库:用于发布稳定版构件。
      • Snapshots仓库:用于存储项目快照版本的构件,这些版本可以随项目构建而频繁更新。
  2. Proxy(代理)仓库
    • Maven Proxy(或称Repository Proxy):作为远程公共仓库(如Maven中央仓库)的缓存,减少对外部网络的依赖,并且能限制哪些组件可以从外部获取。
  3. Group(仓库组)
    • Maven Group:组合多个仓库(无论是Hosted还是Proxy),为用户提供统一的访问入口。当通过一个组仓库请求组件时,Nexus会自动在组内包含的所有仓库中查找所需的构件。
  4. Docker Registry(Docker仓库)
    • Docker Hosted:托管内部开发的Docker镜像。
    • Docker Proxy:代理远程的Docker注册表,比如Docker Hub。
    • Docker Group:将多个Docker仓库聚合到一起,简化对Docker镜像的访问和管理。
  5. 其他类型
    • npm Hosted/Proxy/Group:对应于Node.js包管理器npm的仓库类型。
    • NuGet Hosted/Proxy/Group:针对.NET生态系统的NuGet包管理仓库。
    • Raw Hosted:用于托管非标准格式的文件,例如二进制文件或自定义格式的软件包。

2、配置maven的setting.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository>/Users/pengyangyan/.m2/repository</localRepository>

   <!-- Apache Maven 配置 -->
    <pluginGroups/>
    <proxies/>
    
      <!-- nexus 服务的账户密码配置 -->
     <servers>
        <server>
            <id>maven-public</id>
            <username>admin</username>
            <password>peng123.</password>
        </server>
        <server>
            <id>maven-snapshots</id>
            <username>admin</username>
            <password>peng123.</password>
        </server>
        <server>
            <id>maven-releases</id>
            <username>admin</username>
            <password>peng123.</password>
        </server>
    </servers>


   <!-- 阿里云镜像 -->
    <mirrors>
        <mirror>
			<id>aliyunmaven</id>
			<mirrorOf>*</mirrorOf>
			<name>aliyunmaven</name>
			<url>http://maven.aliyun.com/repository/public</url>
		</mirror>
		<mirror>
			<id>central</id>
			<name>Maven Repository Switchboard</name>
			<url>https://repo1.maven.org/maven2/</url>
			<mirrorOf>central</mirrorOf>
		</mirror>
    </mirrors>

	<profiles>

        <!-- 阿里云配置: 提高国内的jar包下载速度-->
        <profile>
            <id>all</id>
            <repositories>
                <repository>
                    <id>alimaven</id>
                    <name>aliyun maven</name>
                    <url>https://maven.aliyun.com/repository/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>alimaven</id>
                    <name>aliyun maven</name>
                    <url>https://maven.aliyun.com/repository/public</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>

        <!-- 本地nexus仓库-->
        <profile>
        <id>maven-NEXUS</id>
            <!-- 远程仓库列表 -->
            <repositories>
                <repository>
                    <id>maven-public</id>
                    <name>test</name>
                    <!-- 虚拟的URL形式,指向镜像的URL-->
                    <url>http://localhost:8081/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
        </profile>

    </profiles>


</settings>

3、手动上传jar包到私有仓库
请添加图片描述

4、项目jar推送至私有仓库

在需要发布的项目pom文件中添加distributionManagement配置,而后使用idea工具右侧的maven栏,点击deploy发布到远程仓库

在父级项目的pom.xml 配置上

    <distributionManagement>
        <repository>
            <id>maven-releases</id>
            <name>Release Repositories</name>
            <url>http://localhost:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>maven-snapshots</id>
            <name>Snapshot Repositories</name>
            <url>http://localhost:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

请添加图片描述

而后登录到你的nexus私服就能查看部署的jar包

  1. mvn package
    • 作用:完成编译、测试后,根据项目类型(如jar、war、ear等)打包项目。
  2. mvn install
    • 作用:执行 package 之后,还将包安装到本地仓库,使得其他本地项目可以引用此项目作为依赖。
  3. mvn deploy
    • 作用:在成功完成 install 的基础上,将最终构建的工件部署到远程仓库,供其他团队成员或项目使用。

请添加图片描述

看到如图内容表示jar已成功推送到私有仓库。

完结,撒花🎉!!!

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

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

相关文章

【数据结构与算法】3.顺序表

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有限&#xff0c;欢迎各位大佬指点&…

Unity 建造者模式(实例详解)

文章目录 说明实例1&#xff1a;构建游戏角色实例2&#xff1a;构建游戏场景实例3&#xff1a;构建UI界面 说明 在Unity中&#xff0c;建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它通过分离对象构建过程的复杂性&#xff0c;允许您以…

钡铼新品 BL120 Modbus工业协议转换网关

随着物联网技术的迅猛发展&#xff0c;人们深刻认识到在智能化生产和生活中&#xff0c;实时、可靠、安全的数据传输至关重要。在此背景下&#xff0c;高性能的物联网数据传输解决方案——协议转换网关应运而生&#xff0c;广泛应用于工业自动化和数字化工厂应用环境中。 钡铼…

【吃灰开发板复活】DIY全志V3s随身终端屏幕适配,LVGL以及各种外设驱动移植教程

在上周的文章中介绍了一款因作者想要学习Linux而动手DIY的终端设备V3S-PI&#xff0c; 《梦回2004&#xff01;我用全志V3s做了个成本100元&#xff0c;功能媲美MP4的随身终端》&#xff1a;梦回2004&#xff01;我用全志V3s做了个成本100元&#xff0c;功能媲美MP4的随身终端…

为什么电脑降价了?

周末&#xff0c;非常意外地用不到3000元买到了一款2023年度发布的华为笔记本I5,16G,500G&#xff0c;基本是主流配置&#xff0c;我非常意外&#xff0c;看了又看&#xff0c;不是什么Hwawii&#xff0c;或者Huuawe。然后也不是二手。为什么呢&#xff1f;因为在ALU和FPU之外&…

JAVA:OFD Reader Writer 开源库技术解析

1、简述 OFD Reader & Writer 是一个由开源社区推动的 OFD 文件处理库&#xff0c;它旨在提供对 OFD 格式文件的读取和写入功能。这一开源项目为开发者提供了强大而灵活的工具&#xff0c;使得在应用程序中处理和生成 OFD 文件变得更加容易和高效 开源地址&#xff1a;htt…

Flutter底部导航栏插件persistent_bottom_nav_bar的使用

flutter 框架中的 persistent_bottom_nav_bar 插件可以让我们快速实现页面底部导航栏&#xff08;也就是 bottomNavigationBar &#xff09;的布局且能拥有多样的切换效果&#xff08;包括但不限于&#xff1a;动画切换效果、中间凸起按钮效果等&#xff09; 插件网址&#xf…

网络安全全栈培训笔记(55-服务攻防-数据库安全RedisHadoopMysqla未授权访问RCE)

第54天 服务攻防-数据库安全&Redis&Hadoop&Mysqla&未授权访问&RCE 知识点&#xff1a; 1、服务攻防数据库类型安全 2、Redis&Hadoop&Mysql安全 3、Mysql-CVE-2012-2122漏洞 4、Hadoop-配置不当未授权三重奏&RCE漏洞 3、Redis-配置不当未授权…

linux更新内核

内核介绍 官网链接:https://kernel.org 内核下载库: https://mirrors.edge.kernel.org/pub/linux/kernel/ 更新软件源 rootcary:~# apt-get update rootcary:~# sudo apt-get install libncurses5-dev build-essential kernel-package flex bison libelf-dev libssl-dev 下…

通过curl访问k8s集群获取证书或token的方式

K8S安全控制框架主要由下面3个阶段进行控制&#xff0c;每一个阶段都支持插件方式&#xff0c;通过API Server配置来启用插件。 1. Authentication&#xff08;认证&#xff09; 2. Authorization&#xff08;授权&#xff09; 3. Admission Control&#xff08;准入控制&#…

数字频率合成器dds的量化性能分析matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 DDS的基本原理 4.2 DDS的量化性能分析 5.完整工程文件 1.课题概述 数字频率合成器dds的量化性能分析matlab仿真&#xff0c;分别定义累加器位宽&#xff0c;截位位宽&#xff0c;模拟DAC位宽等&…

excel学习1

直接ctrl cctrl v会报错位移选择粘贴时用123那个数字粘贴而不是ctrl V 只要结果不要公式 上面复制的为数值这里是复制的公式他们两个不一样 这个方法太麻烦了直接用格式刷&#xff0c;选择一个区域一个单元格&#xff0c;不要选择多个一刷就出来了 第一个计算后向下拖就行了&…

开发实践8_REST

一、Django REST Framework, Django View & APIView MTV模式实现前后端分离。Representational State Transfer 表现层状态转化。Representation 资源&#xff08;Resource a specific info. on net.&#xff09;具体呈现形式。ST 修改服务端的数据。修改数据 POST请求。…

【AI Agent系列】【MetaGPT】7. 一句话订阅专属信息 - 订阅智能体进阶,实现一个更通用的订阅智能体

文章目录 0. 前置推荐阅读1. 本文内容2. 解析用户指令&#xff08;分析用户需求&#xff09;2.1 完整代码及注释2.2 运行结果 3. 利用大模型写爬虫代码3.1 对html内容进行精简3.2 利用大模型写爬虫代码3.3 补充代码&#xff0c;测试本节程序3.4 运行结果及踩坑3.4.1 运行结果3.…

开始学习vue2基础篇(指令)

一、 内容渲染指令 > {{}} 模板渲染&#xff08;模板引擎&#xff09; 1. {{数据绑定}} 2. {{简单计算}} 3. {{简单逻辑运算}}&#xff08;三元运算&#xff09; 4. {{做简单 js 判断}} 注意&#xff1a;不能写语句、不能解析 html 渲染、不能放在在属性身上 > v-…

40. 组合总和 II - 力扣(LeetCode)

题目描述 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意&#xff1a;解集不能包含重复的组合。 输入示例 candidates [10,1,2,7,…

如何使用WinSCP公网远程访问本地CentOS服务器编辑上传文件

文章目录 1. 简介2. 软件下载安装&#xff1a;3. SSH链接服务器4. WinSCP使用公网TCP地址链接本地服务器5. WinSCP使用固定公网TCP地址访问服务器 1. 简介 ​ Winscp是一个支持SSH(Secure SHell)的可视化SCP(Secure Copy)文件传输软件&#xff0c;它的主要功能是在本地与远程计…

Kubernetes operator(一)client-go篇

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Kubernetes operator学习 系列第一篇&#xff0c;主要对client-go进行学习&#xff0c;从源码阅读角度&#xff0c;学习client-go各个组件的实现原理、如何协同工作等参考视频&#xff1a;Bilibili 2022年最新k…

【MySQL进阶】锁

文章目录 锁概述全局锁语法特点 表级锁表锁意向锁 行级锁行锁间隙锁&临键锁 面试了解数据库的锁吗&#xff1f;介绍一下间隙锁InnoDB中行级锁是怎么实现的&#xff1f;数据库在什么情况下会发生死锁&#xff1f;说说数据库死锁的解决办法 锁 概述 锁机制&#xff1a;数据库…

2 - 部署Redis集群架构

部署Redis集群架构 部署Redis集群部署管理主机第一步 准备ruby脚本的运行环境第二步 创建脚本第三步 查看脚本帮助信息 配置6台Redis服务器第一步 修改配置文件启用集群功能第二步 重启redis服务第三步 查看Redis-server进程状态&#xff08;看到服务使用2个端口号为成功&#…