- 一、nexus介绍
- 二、nexus部署
- 部署java环境
- 安装配置nexus
- 浏览器访问
- 三、创建一个内网yum源
- 四、创建一个代理yum仓库
- 五、jenkins 使用 nexus插件
- jenkins部署
- maven-proxy
- 配置 maven 工程
- 查看构建和上传
一、nexus介绍
- Nexus 是一个强大的仓库管理工具,用于管理和分发 Maven、npm、Docker 等软件包。它提供了一个集中的存储库,用于存储和管理软件包,并提供了版本控制、访问控制、构建和部署等功能。
- Nexus 可以帮助开发团队提高软件包管理的效率和可靠性,减少软件包冲突和版本不一致的问题,并提供了一个安全、可靠的软件包分发渠道。
- Nexus 支持多种仓库类型,包括 Maven 仓库、npm 仓库、Docker 仓库等,并且可以与其他工具和系统集成,如 Jenkins、Ansible、Kubernetes 等,以实现自动化的构建、部署和管理。
- 总的来说,Nexus 是一个非常有用的工具,可以帮助开发团队更好地管理和分发软件包,提高软件开发的效率和质量。
二、nexus部署
部署java环境
[root@localhost ~]# tar -xf jdk-8u211-linux-x64.tar.gz -C /usr/local
[root@localhost ~]# cd /usr/local
[root@localhost local]# vim /etc/profile.d/java.sh
JAVA_HOME=/usr/local/jdk1.8.0_211
PATH=$PATH:$JAVA_HOME/bin
[root@localhost local]# source /etc/profile.d/java.sh
[root@localhost 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@localhost ~]# tar -xf nexus-3.62.0-01-unix.tar.gz -C /usr/local
[root@localhost local]# cd 、/usr/local/nexus-3.62.0-01/
[root@localhost nexus-3.62.0-01]# ./bin/nexus start
[root@localhost ~]# ss -nplt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:* users:(("sshd",pid=941,fd=3))
LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=1127,fd=13))
LISTEN 0 50 *:8081 *:* users:(("java",pid=11182,fd=996))
LISTEN 0 1 127.0.0.1:39060 *:* users:(("java",pid=11182,fd=120))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=941,fd=4))
LISTEN 0 100 [::1]:25 [::]:* users:(("master",pid=1127,fd=14))
浏览器访问
192.168.20.161:8081
注册登录
第一次登录时在/usr/local/sonatype-work/nexus3/admin.password查找密码
将不需要的库删掉,创建自己的库
三、创建一个内网yum源
创建仓库类型为yum
Nexus 仓库类型包括 Group、Hosted 和 Proxy。
Group(组仓库):用于组织其他仓库,它本身不存储任何软件包。Group 仓库可以包含其他类型的仓库,例如 Hosted 或 Proxy 仓库,以方便管理和访问。
Hosted(宿主仓库):用于存储自己构建或上传的软件包。Hosted 仓库通常用于内部开发团队共享软件包,或者用于存储私有软件包。
Proxy(代理仓库):用于代理其他公共仓库的软件包。Proxy 仓库可以缓存公共仓库中的软件包,以提高下载速度和节省带宽。Proxy 仓库还可以用于管理和控制对公共仓库的访问。
用同样的方法配一个epel源
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
backup repo.repo
[root@localhost yum.repos.d]# mv repo.repo backup
[root@localhost yum.repos.d]# ls
backup
[root@localhost yum.repos.d]# vim nexus-aliyun.repo
[nexus-aliyun]
name=nexus-aliyun
baseurl=http://192.168.20.161:8081/repository/yum-aliyun/$releasever/os/$basearch/
enabled=1
gpgcheck=0
[nexus-epel]
name=nexus-epel
baseurl=http://192.168.20.161:8081/repository/yum-epel/7/$basearch
enabled=1
gpgcheck=0
[root@localhost yum.repos.d]# yum clean all
已加载插件:fastestmirror
正在清理软件源: nexus-aliyun nexus-epel
Cleaning up list of fastest mirrors
Other repos take up 438 M of disk space (use --verbose for details)
[root@localhost yum.repos.d]# yum repolist
已加载插件:fastestmirror
Determining fastest mirrors
nexus-aliyun | 2.2 kB 00:00:00
nexus-epel | 3.3 kB 00:00:00
(1/5): nexus-aliyun/7/x86_64/primary | 2.9 MB 00:00:00
(2/5): nexus-epel/x86_64/group_gz | 99 kB 00:00:00
(3/5): nexus-epel/x86_64/primary | 3.9 MB 00:00:00
(4/5): nexus-aliyun/7/x86_64/group_gz | 153 kB 00:00:00
(5/5): nexus-epel/x86_64/updateinfo | 1.0 MB 00:00:00
nexus-aliyun 10072/10072
nexus-epel 13789/13789
源标识 源名称 状态
nexus-aliyun/7/x86_64 nexus-aliyun 10,072
nexus-epel/x86_64 nexus-epel 13,789
repolist: 23,861
四、创建一个代理yum仓库
方法一:
方法二:
[root@localhost ~]# vim /etc/yum.conf
[root@localhost ~]# find /var/cache/yum/ -name "*.rpm"
/var/cache/yum/x86_64/7/nexus-aliyun/packages/apr-1.4.8-7.el7.x86_64.rpm
/var/cache/yum/x86_64/7/nexus-aliyun/packages/apr-util-1.5.2-6.el7.x86_64.rpm
/var/cache/yum/x86_64/7/nexus-aliyun/packages/httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
/var/cache/yum/x86_64/7/nexus-epel/packages/nginx-1.20.1-10.el7.x86_64.rpm
[root@localhost ~]# find /var/cache/yum/ -name "*.rpm" -exec curl -v --user 'admin:admin' --upload-file {} http://192.168.20.161:8081/repository/yum-hosted/{} \;
五、jenkins 使用 nexus插件
jenkins部署
[root@localhost ~]# tar -xf jdk-11.0.19_linux-x64_bin.tar.gz -C /usr/local
[root@localhost ~]# cd /usr/local
[root@localhost local]# vim /etc/profile.d/java.sh
JAVA_HOME=/usr/local/jdk-11.0.19
PATH=$PATH:$JAVA_HOME/bin
[root@localhost local]# source /etc/profile.d/java.sh
[root@localhost local]# 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)
上传war包,启动
[root@localhost ~]# java -jar jenkins-2.414.3.war
Running from: /root/jenkins-2.414.3.war
webroot: /root/.jenkins/war
2023-11-29 06:49:45.580+0000 [id=1] INFO winstone.Logger#logInternal: Beginning extraction from war
maven-proxy
jenkins安装插件
配置 maven 工程
保存
<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>
查看构建和上传