赞
踩
Nexus 是一个强大的仓库管理工具,用于管理和分发 Maven、npm、Docker 等软件包。它提供了一个集中的存储库,用于存储和管理软件包,并提供了版本控制、访问控制、构建和部署等功能。
Nexus 可以帮助开发团队提高软件包管理的效率和可靠性,减少软件包冲突和版本不一致的问题,并提供了一个安全、可靠的软件包分发渠道。
Nexus 支持多种仓库类型,包括 Maven 仓库、npm 仓库、Docker 仓库等,并且可以与其他工具和系统集成,如 Jenkins、Ansible、Kubernetes 等,以实现自动化的构建、部署和管理。
总的来说,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 软件包管理器的仓库。 |
1.部署环境准备两台服务器
jenkins:192.168.40.128
nexus:192.168.40.129
两台服务器均关闭防火墙和seinux
systemctl stop firewalld && setenforce 0
2.安装jenkins11
运行jdk:
- [root@jenkins ~]# ll
- -r-------- 1 root root 8296049 10月 31 11:30 apache-maven-3.8.8-bin.tar.gz
- -r-------- 1 root root 169440335 11月 22 19:52 jdk-11.0.19_linux-x64_bin.tar.gz
- -r-------- 1 root root 89542047 10月 19 00:13 jenkins-2.414.3.war
- -r-------- 1 root root 297294835 11月 29 06:11 plugins-2.414.3.tar.gz
- [root@jenkins ~]# tar xf jdk-11.0.18_linux-x64_bin.tar.gz -C /opt
- #处理环境变量
- [root@jenkins ~]# vim /etc/profile.d/java.sh
- TOMCAT_HOME=/usr/local/tomcat
- JAVA_HOME=/usr/local/java
- PATH=$TOMCAT_HOME/bin:$JAVA_HOME/bin:$PATH
- export TOMCAT_HOME JAVA_HOME PATH
- [root@jenkins ~]# source /etc/profile.d/java.sh
- [root@jenkins ~]# yum -y install fontconfig
- [root@jenkins ~]# mv .jenkins/plugins/ plugins.bak
- [root@jenkins ~]# tar xf plugins-2.414.3.tar.gz -C .jenkins/
- [root@jenkins ~]# java -jar jenkins-2.414.3.war #页面初始化
3.安装nexus
安装jdk环境:jenkins8 ,其他版本不支持, 安装流程查:
安装nexus:
- [root@nexus ~]# ll
- -r-------- 1 root root 194990602 10月 30 11:46 jdk-8u211-linux-x64.tar.gz
- -r-------- 1 root root 231282880 11月 26 20:29 nexus-3.62.0-01-unix.tar.gz
-
- [root@nexus ~]# tar xf nexus-3.62.0-01-unix.tar.gz -C /opt
- [root@nexus ~]# ln -s /opt/nexus-3.62.0-01/ /opt/nexus #创建硬链接方便操作
- [root@nexus ~]# cd /opt/nexus
- [root@nexus nexus]# ./bin/nexus run #run前台运行,start后台运行
192.168.40.129:8081浏览器访问,注册之后才能享有操作权限:
设置=> system[tasks] => create task
Admin-export 导出数据备份
创建一个存储库 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.40.129:8081/repository/yum/
- # 如果你想上传本地缓存的包,可以通过下列命令进行上传
- # 注意,这里的admin admin 指的是nexus的账号密码,可以根据不同的权限进行创建
- [root@nexus ~]# find /var/cache/yum/ -name "*.rpm" -exec curl -v --user 'admin:Qq111111' --upload-file {} http://192.168.75.188:8081/repository/yum/{} \;
验证是否成功上传
尝试使用仓库
- [root@nexus ~]# cd /etc/yum.repos.d/
- [root@nexus yum.repos.d]# vim nexus-yum.repo
- [nexus-yum]
- name=nexus-yum
- baseurl=http://192.168.40.129:8081/repository/yum
- gpgcheck=0
- enabled=1
- [root@nexus ~]# cd /etc/yum.repos.d/
- [root@nexus yum.repos.d]# vim nexus-yum.repo
- [nexus-yum]
- name=nexus-yum
- baseurl=http://192.168.40.129: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 M mariadb-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 k perl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 nexus-yum 57 k perl-DBD-MySQL x86_64 4.023-6.el7 nexus-yum 140 k perl-DBI x86_64 1.627-4.el7 nexus-yum 802 k perl-Data-Dumper x86_64 2.145-3.el7 nexus-yum 47 k perl-IO-Compress noarch 2.061-2.el7 nexus-yum 260 k perl-Net-Daemon noarch 0.48-5.el7 nexus-yum 51 k perl-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 插件文档 测试仓库 easy-springmvc-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>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。