目录
一、nexus 介绍
二、nexus 支持的仓库
三、nexus 部署
四、nexus 数据备份
五、创建一个内网yum源
六、创建一个代理yum仓库
七、jenkins 使用 nexus插件
7.1 jenkins 安装插件
7.2 配置 maven 工程
7.3 查看构建和上传
一、nexus 介绍
-  Nexus 是一个强大的仓库管理工具,用于管理和分发 Maven、npm、Docker 等软件包。它提供了一个集中的存储库,用于存储和管理软件包,并提供了版本控制、访问控制、构建和部署等功能。 
-  Nexus 可以帮助开发团队提高软件包管理的效率和可靠性,减少软件包冲突和版本不一致的问题,并提供了一个安全、可靠的软件包分发渠道。 
-  Nexus 支持多种仓库类型,包括 Maven 仓库、npm 仓库、Docker 仓库等,并且可以与其他工具和系统集成,如 Jenkins、Ansible、Kubernetes 等,以实现自动化的构建、部署和管理。 
-  总的来说,Nexus 是一个非常有用的工具,可以帮助开发团队更好地管理和分发软件包,提高软件开发的效率和质量。 ::: 
二、nexus 支持的仓库
| 仓库名 | 介绍 | 
|---|---|
| apt | 用于存储和管理 Debian 软件包。 | 
| bower | Web 前端包管理器,用于管理 Web 前端资源。 | 
| docker | 用于存储 Docker 镜像。 | 
| gitlfs | 用于存储 Git 大文件。 | 
| helm | 用于存储 Kubernetes Helm charts。 | 
| maven2 | Java 项目构建的仓库。 | 
| npm | Node.js 软件包管理器。 | 
| nuget | 用于 .NET 平台的软件包管理。 | 
| pypi | Python 软件包索引。 | 
| r | R 语言的软件包仓库。 | 
| raw | 一般用于存储任意类型的文件。 | 
| rubygems | Ruby 的软件包管理器。 | 
| yum | 用于存储 Yum 软件包管理器的仓库。 | 
三、nexus 部署
nexus 官网
安装
[root@localhost ~]# tar -xvf nexus-3.62.0-01-unix.tar.gz -C /opt/
[root@localhost ~]# useradd -r nexus
[root@localhost ~]# chown -R nexus:nexus /opt/nexus-3.62.0-01启动
[root@localhost ~]# su - nexus      # 切换到 nexus 用户
[root@localhost ~]# cd /opt/nexus-3.62.0-01/bin
[root@localhost ~]# ./nexus run     # 前台启动 Nexus,查看日志
# 也可以通过start后台启动
四、nexus 数据备份
设置=> system[tasks] => create task

Admin-export 导出数据备份


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


创建一个Repositories 仓库

创建仓库类型为yum Nexus 仓库类型包括 Group、Hosted 和 Proxy。 Group(组仓库):用于组织其他仓库,它本身不存储任何软件包。Group 仓库可以包含其他类型的仓库,例如 Hosted 或 Proxy 仓库,以方便管理和访问。 Hosted(宿主仓库):用于存储自己构建或上传的软件包。Hosted 仓库通常用于内部开发团队共享软件包,或者用于存储私有软件包。 Proxy(代理仓库):用于代理其他公共仓库的软件包。Proxy 仓库可以缓存公共仓库中的软件包,以提高下载速度和节省带宽。Proxy 仓库还可以用于管理和控制对公共仓库的访问。


找到仓库并拷贝路径

测试上传包
# 仓库地址: http://192.168.75.188:8081/repository/yum/  # 如果你想上传本地缓存的包,可以通过下列命令进行上传 # 注意,这里的admin Qq111111 指的是nexus的账号密码,可以根据不同的权限进行创建
[root@localhost ~]# find /var/cache/yum/ -name "*.rpm" -exec curl -v --user 'admin:Qq111111' --upload-file {} http://192.168.75.188:8081/repository/yum/{} \;验证是否成功上传

尝试使用仓库
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim nexus-yum.repo
[nexus-yum]
name=nexus-yum
baseurl=http://192.168.75.188:8081/repository/yum
gpgcheck=0
enabled=1
六、创建一个代理yum仓库

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim nexus-yum.repo
[nexus-yum]
name=nexus-yum
baseurl=http://192.168.75.188:8081/repository/yum-aliyun/$releasever/os/$basearch/
gpgcheck=0
enabled=1
这时,我们可以看到,已经将阿里云的软件包进行了代理,并且,当我们进行了下载时
[root@localhost yum.repos.d]# yum install -y mariadb mariadb-server
...
====================================================================================================Package                          Arch            Version                  Repository          Size
====================================================================================================
Installing:mariadb                          x86_64          1:5.5.68-1.el7           nexus-yum          8.8 Mmariadb-server                   x86_64          1:5.5.68-1.el7           nexus-yum           11 M
Installing for dependencies:perl-Compress-Raw-Bzip2          x86_64          2.061-3.el7              nexus-yum           32 kperl-Compress-Raw-Zlib           x86_64          1:2.061-4.el7            nexus-yum           57 kperl-DBD-MySQL                   x86_64          4.023-6.el7              nexus-yum          140 kperl-DBI                         x86_64          1.627-4.el7              nexus-yum          802 kperl-Data-Dumper                 x86_64          2.145-3.el7              nexus-yum           47 kperl-IO-Compress                 noarch          2.061-2.el7              nexus-yum          260 kperl-Net-Daemon                  noarch          0.48-5.el7               nexus-yum           51 kperl-PlRPC                       noarch          0.2020-14.el7            nexus-yum           36 k
Transaction Summary
====================================================================================================
Install  2 Packages (+8 Dependent packages)
...
Dependency Installed:perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7      perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7     perl-DBD-MySQL.x86_64 0:4.023-6.el7               perl-DBI.x86_64 0:1.627-4.el7                   perl-Data-Dumper.x86_64 0:2.145-3.el7             perl-IO-Compress.noarch 0:2.061-2.el7           perl-Net-Daemon.noarch 0:0.48-5.el7               perl-PlRPC.noarch 0:0.2020-14.el7               
Complete!我们可以看到,包已经缓存了下来

七、jenkins 使用 nexus插件
jenkins 插件文档 测试仓库 easy-springmvc-maven
7.1 jenkins 安装插件

7.2 配置 maven 工程

这里涉及到的groupid version 等信息,可以在项目的pom.xml文件中找到。


 <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> 
 
7.3 查看构建和上传
