外贸品牌网站制作,企业网站推广的线上渠道有哪些,好的电商网站建设与维护意味着什么,wordpress share一、nexus 介绍 Nexus 是一个强大的仓库管理工具#xff0c;用于管理和分发 Maven、npm、Docker 等软件包。它提供了一个集中的存储库#xff0c;用于存储和管理软件包#xff0c;并提供了版本控制、访问控制、构建和部署等功能。 Nexus 可以帮助开发团队提高软件包管理的效…一、nexus 介绍 Nexus 是一个强大的仓库管理工具用于管理和分发 Maven、npm、Docker 等软件包。它提供了一个集中的存储库用于存储和管理软件包并提供了版本控制、访问控制、构建和部署等功能。 Nexus 可以帮助开发团队提高软件包管理的效率和可靠性减少软件包冲突和版本不一致的问题并提供了一个安全、可靠的软件包分发渠道。 Nexus 支持多种仓库类型包括 Maven 仓库、npm 仓库、Docker 仓库等并且可以与其他工具和系统集成如 Jenkins、Ansible、Kubernetes 等以实现自动化的构建、部署和管理。 总的来说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环境
[rootjenkins ~]# tar xf jdk-11.0.19_linux-x64_bin.tar.gz -C /usr/local
[rootjenkins ~]# ls /usr/local/
bin etc games include jdk-11.0.19 lib lib64 libexec sbin share src[rootjenkins ~]# cat /etc/profile.d/jdk11-0.sh
JAVA_HOME/usr/local/jdk-11.0.19
PATH$PATH:$JAVA_HOME/bin[rootjenkins ~]# source /etc/profile.d/jdk11-0.sh[rootjenkins ~]# java -version
java version 11.0.19 2023-04-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.199-LTS-224)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.199-LTS-224, mixed mode) 启动jenkins
[rootjenkins ~]# ls
anaconda-ks.cfg plugins-2.414.3.tar.gz jdk-11.0.19_linux-x64_bin.tar.gz jenkins-2.414.3.war [rootjenkins ~]# yum -y install fontconfig [rootjenkins ~]# 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.2920000 [id1] INFO winstone.Logger#logInternal: Beginning extraction from war file
···· nexus服务端操作 安装jdk
[rootnexus ~]# tar xf jdk-8u211-linux-x64.tar.gz -C /usr/local/[rootnexus ~]# cat /etc/profile.d/jdk1-8.sh
JAVA_HOME/usr/local/jdk1.8.0_211
PATH$PATH:$JAVA_HOME/bin[rootnexus local]# source /etc/profile.d/jdk1-8.sh[rootnexus 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
[rootnexus ~]# ls
anaconda-ks.cfg ip_fixed.sh jdk-8u211-linux-x64.tar.gz nexus-3.62.0-01-unix.tar.gz yum-server.sh
[rootnexus ~]# tar xf nexus-3.62.0-01-unix.tar.gz -C /usr/local/创建用户并修改文件权限
[rootnexus ~]# useradd nexus
[rootnexus ~]# chown -R nexus.nexus /usr/local/nexus-3.62.0-01/切换用户并启动nexus
[rootnexus nexus-3.62.0-01]# su nexus[nexusnexus ~]$ cd /usr/local/nexus-3.62.0-01/
[nexusnexus nexus-3.62.0-01]$ ./bin/nexus start
Starting nexus[nexusnexus nexus-3.62.0-01]$ ss -nplt | grep java
LISTEN 0 1 127.0.0.1:35388 *:* users:((java,pid14227,fd117))
LISTEN 0 50 *:8081 *:* users:((java,pid14227,fd902))浏览器访问192.168.58.150:8081
初始用户admin 密码在 /usr/local/sonatype-work/nexus3/admin.password 里
[rootnexus ~]# cat /usr/local/sonatype-work/nexus3/admin.password
c5a65934-df56-4715-85d7-d4d93aefc814 登录成功记得修改密码方便下次登录。
四、nexus 数据备份
设置 system[tasks] create task Admin-export 导出数据备份 完成填写后create task 。
五、创建一个内网yum源
创建一个存储库 BlobBinary 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/[rootnexus ~]# vim /etc/yum.conf
keepcache1 #开启安装包缓存[rootnexus ~]# yum -y install nginx #安装nginx用来测试
····[rootnexus ~]# 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的账号密码可以根据不同的权限进行创建[rootnexus ~]# 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
[rootjenkins ~]# vim /etc/yum.repos.d/nexus-aliyun.repo
[nexus-aliyun]
namenexus-aliyun
baseurlhttp://192.168.58.150:8081/repository/yum-aliyun/$releasever/os/$basearch/
enabled1
gpgcheck0[nexus-epel]
namenexus-epel
baseurlhttp://192.168.58.150:8081/repository/yum-aliyun-epel/$releasever/$basearch/
enabled1
gpgcheck0[rootjenkins yum.repos.d]# yum clean all[rootjenkins yum.repos.d]# yum repolist
····13,789
repolist: 23,861
[rootjenkins 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 xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdspringmvc-maven/groupIdartifactIdeasy-springmvc-maven/artifactId!-- 注意这里的名字中不要带有snapshot --version0.0.1/versionpackagingwar/packagingnamespringmvc-maven/namedescriptionsimple demo about how to use maven combine spring mvc/descriptionbuild!-- 使用默认的文件路径 --!-- 生成的war文件名 避免添加版本号 --finalNameeasy-springmvc-maven/finalNamepluginspluginartifactIdmaven-compiler-plugin/artifactIdversion3.1/versionconfigurationsource1.6/sourcetarget1.6/target/configuration/pluginplugin artifactIdmaven-war-plugin/artifactId configuration version3.0 /version !-- maven的web项目默认的webroot是在src\main\webapp。如果在此目录下找不到web.xml就抛出webxml attribute is required的异常 --!-- 需要在pom.xml中增加webXml配置 --!-- webXmlWebContent\WEB-INF\web.xml/webXml --/configuration /plugin/plugins/builddependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency!-- spring mvc dependencies start --dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aop/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion${spring.version}/version/dependency!-- spring mvc dependencies end --!-- 解决页面访问时发生错误: java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config - start --dependencygroupIdjstl/groupIdartifactIdjstl/artifactIdversion1.2/version/dependencydependencygroupIdtaglibs/groupIdartifactIdstandard/artifactIdversion1.1.2/version/dependency!-- end --/dependenciespropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingspring.version3.1.2.RELEASE/spring.version/properties
/project 应用保存并构建项目