系列文章目录
第一章 基础知识、数据类型学习
第二章 万年历项目
第三章 代码逻辑训练习题
第四章 方法、数组学习
第五章 图书管理系统项目
第六章 面向对象编程:封装、继承、多态学习
第七章 封装继承多态习题
第八章 常用类、包装类、异常处理机制学习
第九章 集合学习
第十章 IO流、多线程学习
第十一章 仓库管理系统JavaSE项目
第十二章 员工管理系统、多表查询、反射实现DBHelper学习
第十三章 DML、DDL、数据库对象学习
第十四章 网络编程、各种标签、CSS学习
第十五章 ECMAScript、BOM学习
第十六章 DOM、jQuery学习
第十七章 servlet、jsp、Cookie、Ajax学习
第十八章 融资管理系统JavaWeb项目
第十九章 MyBatis框架学习
第二十章 逆向工程、Spring框架IOC、AOP学习
第二十一章 SpringMVC框架学习
第二十二章 SpringBoot框架学习
第二十三章 招聘网站框架项目
第二十四章 Vue介绍、窗体内操作、窗体间操作学习
第二十六章 Vue路由配置、网络请求访问框架项目、element组件介绍学习
第二十五章 标准管理系统Vue项目
第二十六章 Linux安装、Nginx反向代理、负载均衡学习
第二十七章 Docker学习
第二十八章 Jenkins学习
第二十九章 Nexus学习
文章目录
前言
本文我们要讲述:
Nexus
在下攸攸太上,目前出差中。
Nexus_42">一、Nexus介绍
Nexus_43">1. Nexus介绍
Nexus 是一个开源的仓库管理器,用于管理和分发软件构建的组件。它可以作为Maven、Gradle等构建工具的中央仓库,用于存储和共享构建输出,如jar文件、源代码、文档等。
2. 介绍maven仓库jar类型
在Maven仓库中,jar类型可以分为快照版和发布版两种类型。
2.1 快照版(Snapshot)
快照版是正在开发中的临时版本,还没有经过大量测试。每次提交到仓库的快照版都会生成一个新的快照,但版本号不会改变。使用快照版可以方便地引入最新的代码更改或修复。
在pom.xml文件中引用快照版时,可以使用类似于1.0-SNAPSHOT的版本号,Maven会自动下载最新的快照版本。主要是编程人员使用于开发的版本。
2.2 发布版(Release)
发布版是经过大量测试并且已经完成全流程的稳定版本。这些稳定的发布版是可以放心引用的,因为它们经过了严格的测试和验证。
在pom.xml文件中引用发布版时,需要指定完整的版本号,如1.0.0。Maven会根据指定的版本号下载相应的发布版。主要是投入市场的最终版本。
Nexus作为一个仓库管理器,能够方便地管理这些不同类型的jar文件,并提供安全、可靠的构建组件分发服务。
Nexus_57">二、Nexus安装
1. 创建映射路径
创建如下文件夹/usr/local/docker/nexus/data
同时为目录data授权:
cd /usr/local/docker/nexus
chmod 777 data
Nexus_65">2. 启动Nexus
docker run -d --name nexus3 -p 8081:8081 --restart always -v /usr/local/docker/nexus/data:/nexus-data sonatype/nexus3:3.36.0
docker ps
Nexus_71">3. 访问Nexus
虚拟机地址:8081
4. 查看登录密码
点击Nexus网站右上角Sign In,在SSH使用如下语句输出密码
cd data
cat admin.password
用户名:admin
密码:bf473865-9e04-44a7-acb4-dc73307d5596
在网站上登录
点击Sign in,后点击Next
设置新密码后,点击Next
选择Enable后,点击Next,后点击Finish
5. 设置仓库
5.1 创建代理仓库
按照下面三步点击
选择maven2(proxy)
输入如下数据
aliyun_proxy
http://maven.aliyun.com/nexus/content/groups/public/
之后,点击Create repository,出现aliyun proxy
5.2 创建本地快照仓库
按照下面三步点击
选择maven2(hosted)
输入名字、类型
5.3 创建发布版仓库
再次点击创建,本次选择maven2(hosted)
输入名字、类型
5.4 创建仓库组
点击创建,选择maven(group)
输入名字
从Available双击我们创建的三个仓库
点击Create repository
6. 修改配置文件
在/usr/local/maven/apache-maven-3.3.9/conf文件夹下修改settings.xml文件
首先,在services标签下加入两个server子标签,id对应配置的两个hosted仓库名称
<server><id>jjy_RELEASE</id><username>admin</username><password>123456</password></server><server><id>jjy_SNAPSHOT</id><username>admin</username><password>123456</password></server>
其次,在mirrors标签下加入mirror子标签,并注释原ali镜像源
<mirror><id>nexus</id><mirrorOf>*</mirrorOf><url>http://192.168.14.23:8081/repository/jjy/</url>
</mirror>
第三,在profiles下配置一套环境
<profile><id>nexus</id><repositories><repository><id>central</id><url>http://192.168.14.23:8081/repository/jjy/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>central</id><url>http://192.168.14.23:8081/repository/jjy/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></pluginRepository></pluginRepositories></profile>
其四,在mirrors下写localRepository标签
<localRepository>/usr/local/maven/apache-maven-3.3.9/repository</localRepository>
最后,在文档尾加入activeProfiles标签,启用刚才配置的环境
<activeProfiles><activeProfile>nexus</activeProfile>
</activeProfiles>
我们可以执行一下Jenkins,验证一下,修改镜像仓库后,原来的流水线代码是否可行
试了半天,终于好使了
三、本地开发环境配置
1. 项目的pom文件配置
将如下代码写入pom.xml文件,配置私服
<distributionManagement><repository><id>jjy-RELEASE</id><name>Nexus Release Repository</name><url>http://192.168.14.23:8081/repository/jjy/</url></repository><snapshotRepository><id>240919_DemoNginx-1.0-SNAPSHOT</id><name>Nexus Snapshot Repository</name><url>http://192.168.14.23:8081/repository/jjy/</url></snapshotRepository></distributionManagement>
2. 修改当前Maven引用
在Settings当中我们可以找到当前项目的Maven的setting路径
在settings文件中,我们将虚拟机的Maven更改的都更改一遍,我们先备份一份
1、
<server><id>jjy_RELEASE</id><username>admin</username><password>123456</password></server><server><id>240919_DemoNginx:1.0-SNAPSHOT</id><username>admin</username><password>123456</password></server>
2、
<mirror><id>nexus</id><mirrorOf>*</mirrorOf><url>http://192.168.14.23:8081/repository/jjy/</url>
</mirror>
3、
<profile><id>nexus</id><repositories><repository><id>central</id><url>http://192.168.14.23:8081/repository/jjy/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>central</id><url>http://192.168.14.23:8081/repository/jjy/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></pluginRepository></pluginRepositories></profile>
4、
<localRepository>/usr/local/maven/apache-maven-3.3.9/repository</localRepository>
5、
<activeProfiles><activeProfile>nexus</activeProfile> </activeProfiles>
最后不要忘记保存
3. 修改打包插件
build插件的plugins子插件中添加两个新的打包插件
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.6.0</version><configuration><source>1.8</source><target>1.8</target></configuration>
</plugin>
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>3.0.0</version><configuration><attach>true</attach></configuration><executions><execution><phase>compile</phase><goals><goal>jar</goal></goals></execution></executions>
</plugin>
更改后Git-commit后提交
Nexus_318">四、Jenkins将jar文件上传到Nexus
node {stage('pull code'){
git credentialsId: '0d34702d-9692-4d06-90f9-821e743c9bc7', url: 'https://gitee.com/jinjingyuan/240921foureight.git'}stage('compile'){dir('/var/lib/jenkins/workspace/240923one'){sh 'mvn clean install'}}
stage('upload jar'){sh "mvn deploy:deploy-file \-DgroupId=com.jjy \-DartifactId=240919_DemoNginx \-Dversion=1.0-SNAPSHOT \-Dpackaging=jar \-Dfile=/var/lib/jenkins/workspace/240923one/target/240919_DemoNginx-1.0-SNAPSHOT.jar \-Dsources=/var/lib/jenkins/workspace/240923one/target/240919_DemoNginx-1.0-SNAPSHOT-sources.jar \-DpomFile=/usr/local/maven/apache-maven-3.3.9/repository/com/jjy/240919_DemoNginx/1.0-SNAPSHOT/240919_DemoNginx-1.0-SNAPSHOT.pom \-DrepositoryId=jjy_SNAPSHOT \-Durl=http://192.168.14.23:8081/repository/jjy_SNAPSHOT/"}
}
1. 流水线第一步:pull code
stage('pull code'){
git credentialsId: '0d34702d-9692-4d06-90f9-821e743c9bc7', url: 'https://gitee.com/jinjingyuan/240921foureight.git'}
自己测试自己的代码的git credentialsId和url
2. 流水线第二步:compile
stage('compile'){dir('/var/lib/jenkins/workspace/240923one'){sh 'mvn clean install'}}
/var/lib/jenkins/workspace/文件夹下的自己项目名称的文件夹清空
3. 流水线第三步:upload jar
stage('upload jar'){sh "mvn deploy:deploy-file \-DgroupId=com.jjy \-DartifactId=240919_DemoNginx \-Dversion=1.0-SNAPSHOT \-Dpackaging=jar \-Dfile=/var/lib/jenkins/workspace/240923one/target/240919_DemoNginx-1.0-SNAPSHOT.jar \-Dsources=/var/lib/jenkins/workspace/240923one/target/240919_DemoNginx-1.0-SNAPSHOT-sources.jar \-DpomFile=/usr/local/maven/apache-maven-3.3.9/repository/com/jjy/240919_DemoNginx/1.0-SNAPSHOT/240919_DemoNginx-1.0-SNAPSHOT.pom \-DrepositoryId=jjy_SNAPSHOT \-Durl=http://192.168.14.23:8081/repository/jjy_SNAPSHOT/"}
3.1 前三个参数
将pom.xml文件中的groupId赋给DgroupId、artifactId赋给DartifactId、version赋给Dversion
3.2 第5-7个参数
Dfile、Dsources在/var/lib/jenkins/workspace/240923one/target/文件夹下
DpomFile在/usr/local/maven/apache-maven-3.3.9/repository/com/jjy/240919_DemoNginx/1.0-SNAPSHOT/文件夹下
3.3 第8-9个参数
DrepositoryId、Durl分别对应Repositories下的240921_RELEASE的Name和URL
流水线出现如下、即为成功
总结
本文讲述了:
Nexus:私有服务,从公司服务器同步所需环境
在下攸攸太上,出差已回归。