nexus制品库的介绍及详细部署使用

一、nexus 介绍

  1. Nexus 是一个强大的仓库管理工具,用于管理和分发 Maven、npm、Docker 等软件包。它提供了一个集中的存储库,用于存储和管理软件包,并提供了版本控制、访问控制、构建和部署等功能。

  2. Nexus 可以帮助开发团队提高软件包管理的效率和可靠性,减少软件包冲突和版本不一致的问题,并提供了一个安全、可靠的软件包分发渠道。

  3. Nexus 支持多种仓库类型,包括 Maven 仓库、npm 仓库、Docker 仓库等,并且可以与其他工具和系统集成,如 Jenkins、Ansible、Kubernetes 等,以实现自动化的构建、部署和管理。

  4. 总的来说,Nexus 是一个非常有用的工具,可以帮助开发团队更好地管理和分发软件包,提高软件开发的效率和质量。

二、nexus 支持的仓库

三、nexus 部署

官网:Download Nexus Repository OSS | Sonatype

准备工作:

三台服务器:(均关闭防火墙和selinux)

192.168.58.149        jenkins

192.168.58.150        nexus

192.168.58.151        sonarqube

jenkins服务器端操作:

安装并配置jdk环境

[root@jenkins ~]# tar xf jdk-11.0.19_linux-x64_bin.tar.gz -C /usr/local
[root@jenkins ~]# ls /usr/local/
bin  etc  games  include  jdk-11.0.19  lib  lib64  libexec  sbin  share  src

[root@jenkins ~]# cat /etc/profile.d/jdk11-0.sh 
JAVA_HOME=/usr/local/jdk-11.0.19
PATH=$PATH:$JAVA_HOME/bin

[root@jenkins ~]# source /etc/profile.d/jdk11-0.sh

[root@jenkins ~]# java -version
java version "11.0.19" 2023-04-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.19+9-LTS-224)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.19+9-LTS-224, mixed mode)

 启动jenkins

[root@jenkins ~]# ls
anaconda-ks.cfg  plugins-2.414.3.tar.gz  jdk-11.0.19_linux-x64_bin.tar.gz  jenkins-2.414.3.war 

[root@jenkins ~]# yum -y install fontconfig     

[root@jenkins ~]# java -jar jenkins-2.414.3.war 
Running from: /root/jenkins-2.414.3.war
webroot: /root/.jenkins/war
2023-11-29 07:26:25.292+0000 [id=1]     INFO    winstone.Logger#logInternal: Beginning extraction from war file
····

 nexus服务端操作:

 安装jdk

[root@nexus ~]# tar xf jdk-8u211-linux-x64.tar.gz -C /usr/local/

[root@nexus ~]# cat /etc/profile.d/jdk1-8.sh 
JAVA_HOME=/usr/local/jdk1.8.0_211
PATH=$PATH:$JAVA_HOME/bin

[root@nexus local]# source /etc/profile.d/jdk1-8.sh

[root@nexus local]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

下载安装nexus

[root@nexus ~]# ls
anaconda-ks.cfg  ip_fixed.sh  jdk-8u211-linux-x64.tar.gz  nexus-3.62.0-01-unix.tar.gz  yum-server.sh
[root@nexus ~]# tar xf nexus-3.62.0-01-unix.tar.gz -C /usr/local/

创建用户并修改文件权限

[root@nexus ~]# useradd  nexus
[root@nexus ~]# chown -R nexus.nexus /usr/local/nexus-3.62.0-01/

切换用户并启动nexus

[root@nexus nexus-3.62.0-01]# su nexus

[nexus@nexus ~]$ cd /usr/local/nexus-3.62.0-01/
[nexus@nexus nexus-3.62.0-01]$  ./bin/nexus start
Starting nexus

[nexus@nexus nexus-3.62.0-01]$ ss -nplt | grep java
LISTEN     0      1      127.0.0.1:35388                    *:*                   users:(("java",pid=14227,fd=117))
LISTEN     0      50           *:8081                     *:*                   users:(("java",pid=14227,fd=902))

 浏览器访问:192.168.58.150:8081

初始用户:admin       密码:在 /usr/local/sonatype-work/nexus3/admin.password 里

[root@nexus ~]# cat /usr/local/sonatype-work/nexus3/admin.password
c5a65934-df56-4715-85d7-d4d93aefc814

 登录成功,记得修改密码,方便下次登录。

四、nexus 数据备份

设置 => system[tasks] => create task

Admin-export 导出数据备份

完成填写后,create task 。

五、创建一个内网yum源

创建一个存储库 Blob(Binary Large Object)是一种二进制大对象,通常用于存储图像、音频、视频等大型文件。Blob Stores 是一种用于存储和管理 Blob 的数据存储服务,通常由云服务提供商提供。

创建一个Repositories 仓库

创建仓库类型为yum Nexus 仓库类型包括 Group、Hosted 和 Proxy。

Group(组仓库):用于组织其他仓库,它本身不存储任何软件包。Group 仓库可以包含其他类型的仓库,例如 Hosted 或 Proxy 仓库,以方便管理和访问。

Hosted(宿主仓库):用于存储自己构建或上传的软件包。Hosted 仓库通常用于内部开发团队共享软件包,或者用于存储私有软件包。

Proxy(代理仓库):用于代理其他公共仓库的软件包。Proxy 仓库可以缓存公共仓库中的软件包,以提高下载速度和节省带宽。Proxy 仓库还可以用于管理和控制对公共仓库的访问。  

 创建yum-hosted

填写完毕,create repository

查看新创建的repository ,并复制其URL

 测试上传包

# 仓库地址:http://192.168.58.150:8081/repository/yum-hosted/

[root@nexus ~]# vim /etc/yum.conf 
keepcache=1   #开启安装包缓存

[root@nexus ~]# yum -y install nginx    #安装nginx用来测试
····

[root@nexus ~]# find /var/cache/yum/ -name *.rpm
/var/cache/yum/x86_64/7/mybase/packages/centos-indexhtml-7-9.el7.centos.noarch.rpm
/var/cache/yum/x86_64/7/mybase/packages/gperftools-libs-2.6.1-1.el7.x86_64.rpm
/var/cache/yum/x86_64/7/myepel/packages/nginx-1.20.1-10.el7.x86_64.rpm
/var/cache/yum/x86_64/7/myepel/packages/nginx-filesystem-1.20.1-10.el7.noarch.rpm
/var/cache/yum/x86_64/7/myepel/packages/openssl11-libs-1.1.1k-5.el7.x86_64.rpm

# 如果你想上传本地缓存的包,可以通过下列命令进行上传
# 注意,这里的admin 123456 指的是nexus的账号密码,可以根据不同的权限进行创建

[root@nexus ~]# find /var/cache/yum/ -name "*.rpm" -exec curl -v --user 'admin:123456' --upload-file {} http://192.168.58.150:8081/repository/yum-hosted/{} \;

·····
* Connection #0 to host 192.168.58.150 left intact

执行完成之后浏览器查看

六、创建一个代理yum仓库

查看

新建yum源并安装任意服务,这里安装mariadb mariadb-server

[root@jenkins ~]# vim /etc/yum.repos.d/nexus-aliyun.repo 
[nexus-aliyun]
name=nexus-aliyun
baseurl=http://192.168.58.150:8081/repository/yum-aliyun/$releasever/os/$basearch/
enabled=1
gpgcheck=0

[nexus-epel]
name=nexus-epel
baseurl=http://192.168.58.150:8081/repository/yum-aliyun-epel/$releasever/$basearch/
enabled=1
gpgcheck=0

[root@jenkins yum.repos.d]# yum clean all

[root@jenkins yum.repos.d]# yum repolist
····
                                                                13,789
repolist: 23,861
[root@jenkins yum.repos.d]# yum -y install mariadb mariadb-server
····
完毕!

浏览器查看

七、jenkins 使用 nexus插件

 jenkins插件文档 : Nexus Artifact Uploader | Jenkins plugin

 测试仓库 : https://gitea.beyourself.org.cn/newrain001/easy-springmvc-maven.git  

7.1 jenkins 安装插件

7.2 配置 maven 工程

 新建maven项目

 测试仓库url: newrain001/easy-springmvc-maven - easy-springmvc-maven - Gitea: Newrain 代码仓库

nexus仓库的账号和密码 : admin   123456 

项目的信息 

<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>springmvc-maven</groupId>
  <artifactId>easy-springmvc-maven</artifactId>
  <!-- 注意这里的名字中不要带有snapshot -->
  <version>0.0.1</version>
  <packaging>war</packaging>
  <name>springmvc-maven</name>
  <description>simple demo about how to use maven combine spring mvc</description>
  <build>
  <!-- 使用默认的文件路径 -->
   <!-- 生成的war文件名 避免添加版本号 -->
    <finalName>easy-springmvc-maven</finalName>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
      <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
        <configuration> 
        <version>3.0 </version> 
        <!-- maven的web项目默认的webroot是在src\main\webapp。如果在此目录下找不到web.xml就抛出webxml attribute is required的异常 -->
        <!-- 需要在pom.xml中增加<webXml>配置 -->
        <!-- <webXml>WebContent\WEB-INF\web.xml</webXml> -->
        </configuration> 
       </plugin>
    </plugins>
  </build>
  <dependencies>
  	<dependency>
  		<groupId>junit</groupId>
  		<artifactId>junit</artifactId>
  		<version>4.12</version>
  		<scope>test</scope>
  	</dependency>
    
    <!-- spring mvc dependencies start -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>${spring.version}</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-jdbc</artifactId>
		<version>${spring.version}</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context</artifactId>
		<version>${spring.version}</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-aop</artifactId>
		<version>${spring.version}</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-core</artifactId>
		<version>${spring.version}</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-test</artifactId>
		<version>${spring.version}</version>
	</dependency>
	<!-- spring mvc dependencies end -->
	<!-- 解决页面访问时发生错误: java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config - start -->
	<dependency>
		<groupId>jstl</groupId>
		<artifactId>jstl</artifactId>
		<version>1.2</version>
	</dependency>
	<dependency>
		<groupId>taglibs</groupId>
		<artifactId>standard</artifactId>
		<version>1.1.2</version>
	</dependency>
	<!-- end -->
  </dependencies>
  
  <properties>
  	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  	<spring.version>3.1.2.RELEASE</spring.version>
  </properties>
</project>

 应用保存并构建项目

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

构建强大的接口自动化测试框架:Pytest实践指南!

一. 背景 Pytest目前已经成为Python系自动化测试必学必备的一个框架&#xff0c;网上也有很多的文章讲述相关的知识。最近自己也抽时间梳理了一份pytest接口自动化测试框架&#xff0c;因此准备写文章记录一下&#xff0c;做到尽量简单通俗易懂&#xff0c;当然前提是基本的py…

DevEco Studio设置每次进入 是否自动进入上一次的项目

首先 我们第一次创建项目 并不是这个界面 如果我们想在这个界面创建项目的话 可以 点击左上角 File 下的 New 下的 Create Project 这里 我们可以点击左上角 File 选择下面的 Settings… 这个界面就有非常多的配置 然后 我们选择到下图操作的位置 这里有一个Reopen projects…

适用于 Windows 和 Mac 电脑的最佳数据恢复软件

当我们的电脑上的文件被错误删除时&#xff0c;总是很难恢复该文件&#xff0c;或者除非您进行了系统还原&#xff0c;否则一切都会恢复到删除恢复的文件或文件夹之前的状态。 拥有合适的 PC 软件始终可以帮助您改善 PC 用户的体验&#xff0c;而适用于 Windows 10 和 11 的良…

SQL 金额数值转换成中文大写

需求&#xff1a;将金额转换成中文大写格式填入单据合计行&#xff1a; _佰_拾_万_仟_佰_拾_元_角_分 1234567.89 壹佰贰拾叁万肆仟伍佰陆拾柒元捌角玖分 1.函数转换 drop function n2C;CREATE FUNCTION n2C (num numeric(14,2)) RETURNS VARCHAR(20) AS BEGIN …

linux NAT网卡配置static

由于是内网&#xff0c;资料无法拷贝&#xff0c;借助参考资料&#xff0c;整理发出。 镜像安装 基本操作。 查看VM配置 图1&#xff0c;有几个信息。一个是NAT借用了网卡里的VMnet8适配器。 子网IP是从192.168.142.0 子网掩码255.255.255.255&#xff0c;对应下面配置的N…

【云平台】STM32微信小程序阿里云平台汇总——持续更新

【云平台】STM32微信小程序阿里云平台汇总——持续更新 文章目录 前言总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 【云平台】STM32微信小程序阿里云平台学习板 【云平台】小白从零开始&#xff1a;小程序阿里云平台控制STM32&#xff08…

WordPress批量上传文章和自动发布文章的方法

专业介绍&#xff1a;WordPress批量上传文章技术解析 在现代数字时代&#xff0c;内容创作是网络存在的驱动力之一。对于博客作者、新闻编辑和内容管理员而言&#xff0c;高效地批量上传文章至WordPress平台是提高工作效率的一个关键方面。WordPress作为最受欢迎的内容管理系统…

48、Flink DataStream API 编程指南(3)- 完整版

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

LeetCode Hot100 101.对称二叉树

题目&#xff1a; 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 代码&#xff1a; class Solution {public boolean isSymmetric(TreeNode root) {if(rootnull || (root.leftnull && root.rightnull)) {return true;}//用队列保存节点LinkedList<…

【网络安全】meterpreter攻击实战

1.meterpreter 攻击成功后可以做什么指令&#xff1f; 远程控制命令执行摄像头监控密码获取创建后门用户破坏篡改系统。 2.创建后门用户并开启远程连接&#xff1a; net user zhangsan 123456/add && net localgroup adminstrators zhangsan/add exit run getgul -…

面向对象编程(结合GPT):写给小女朋友的保姆级Python软件开发教程01:pyside6环境的配置和工具的使用

参考&#xff1a; 库的安装和两个在pycharm工具的配置 B站教程&#xff1a;可以练听力&#xff1a;【5个小时 PySide6完全开发指南 使用 Qt 进行 Python GUI 桌面应用开发&#xff08;中英字幕&#xff09;】 CSDN也有配置 安装完以后其实这个就是路径。 打开可以看到pyside…

进阶C语言-字符函数和字符串函数

字符函数和字符串函数 &#x1f388;1.函数介绍&#x1f50e;1.1strlen函数&#x1f52d;1.1.1strlen函数的模拟实现&#x1f4d6;1.计数器法&#x1f4d6;2.递归法&#x1f4d6;3.指针-指针 &#x1f50e;1.2strcpy函数&#x1f52d;1.2.1strcpy函数的模拟实现 &#x1f50e;1…

VGN S99快捷键,说明书

VGN S99快捷键-说明书 按键说明灯光效果常见疑难 按键说明 切换关闭电量指示灯&#xff1a;Fn home 灯光效果 常见疑难

burpsuite issue definitions

https://portswigger.net/burp/documentation/scanner/vulnerabilities-list 先从高危的开始学(四十能学剑&#xff0c;时人无此心)&#xff1a; os command injection todo 未完待续

一些好用的12款前端小插件

1. cropper.js Cropper.js 2.0 是一系列用于图像裁剪的 Web 组件。 官网地址&#xff1a;https://fengyuanchen.github.io/cropperjs/v2/zh/ 2. Vditor Vditor是一款浏览器端的 Markdown 编辑器&#xff0c;支持所见即所得、即时渲染&#xff08;类似 Typora&#xff09;和分…

php请求okx接口获取比特币价格数据、k线数据

php请求okx接口获取比特币价格数据 环境配置请求头、签名设置签名配置代理 全部代码 环境 我本地用的是thinkphp框架和guzzle 安装guzzle composer require guzzlehttp/guzzle 配置请求头、签名 我们需要准备api_key&#xff0c;secret_key&#xff0c;passphrase api_key…

docker (镜像分层、阿里云镜像推送/拉去)-day02

一、镜像概念 Docker 镜像是 Docker 容器的基础&#xff0c;它提供了一种可重复使用的、跨平台的部署方式&#xff0c;使得应用程序的部署和运行变得简单和高效。 把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),打包好…

ethtool工具添加并验证网口

Filesystem Packages->console->network->ethtool 命令描述&#xff1a; ethtool 是用于查询及设置网卡参数的命令。 使用命令&#xff1a; ethtool ethx //查询ethx网口基本设置&#xff0c;其中 x 是对应网卡的编号&#xff0c;如eth0、eth1等等 ethtool –…

利用 LD_PRELOAD劫持动态链接库,绕过 disable_function

目录 LD_PRELOAD 简介 程序的链接 动态链接库的搜索路径搜索的先后顺序&#xff1a; 利用LD_PRELOAD 简单的劫持 执行id命令 反弹shell 引申至 PHP 绕过disable_function 方法1&#xff1a;使用蚁剑的扩展工具绕过disable_function 方法2&#xff1a;利用 mail 函数…

推荐几款免费的智能AI伪原创工具

在当今信息快速传播的时代&#xff0c;创作者们常常为了在激烈的竞争中脱颖而出而苦苦挣扎&#xff0c;而其中的一项挑战就是创作出独具创意和独特性的内容。然而&#xff0c;时间有限的现实让很多人望而却步。在这个背景下&#xff0c;免费在线伪原创工具成为了创作者们的得力…