Nexus学习

devtools/2024/9/25 14:48:35/

系列文章目录

第一章 基础知识、数据类型学习
第二章 万年历项目
第三章 代码逻辑训练习题
第四章 方法、数组学习
第五章 图书管理系统项目
第六章 面向对象编程:封装、继承、多态学习
第七章 封装继承多态习题
第八章 常用类、包装类、异常处理机制学习
第九章 集合学习
第十章 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介绍
    • 1. Nexus介绍
    • 2. 介绍maven仓库jar类型
    • 2.1 快照版(Snapshot)
    • 2.2 发布版(Release)
  • 二、Nexus安装
    • 1. 创建映射路径
    • 2. 启动Nexus
    • 3. 访问Nexus
    • 4. 查看登录密码
    • 5. 设置仓库
      • 5.1 创建代理仓库
      • 5.2 创建本地快照仓库
      • 5.3 创建发布版仓库
      • 5.4 创建仓库组
    • 6. 修改配置文件
  • 三、本地开发环境配置
    • 1. 项目的pom文件配置
    • 2. 修改当前Maven引用
    • 3. 修改打包插件
  • 四、Jenkins将jar文件上传到Nexus
    • 1. 流水线第一步:pull code
    • 2. 流水线第二步:compile
    • 3. 流水线第三步:upload jar
      • 3.1 前三个参数
      • 3.2 第5-7个参数
      • 3.3 第8-9个参数
  • 总结


前言

本文我们要讲述:
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:私有服务,从公司服务器同步所需环境
在下攸攸太上,出差已回归。


http://www.ppmy.cn/devtools/117010.html

相关文章

数据结构---二叉搜索树(二叉排序树)

什么是二叉排序树 二叉搜索树又是二叉排序树&#xff0c;当我们的是一颗空树或者具有以下性质时&#xff1a; 左子树不为空&#xff0c;左子树上的值都小于我们的根节点上的值。右子树不为空时&#xff0c;右子树上的值都大于我们的根节点上的值左右子树都是二叉搜索树&#…

Java笔试面试题AI答之设计模式(2)

文章目录 6. 什么是单例模式&#xff0c;以及他解决的问题&#xff0c;应用的环境 &#xff1f;解决的问题应用的环境实现方式 7. 什么是工厂模式&#xff0c;以及他解决的问题&#xff0c;应用的环境 &#xff1f;工厂模式简述工厂模式解决的问题工厂模式的应用环境工厂模式的…

ESP32-WROOM-32 [创建AP站点-客户端-TCP透传]

简介 基于ESP32-WROOM-32 开篇(刚买)&#xff0c; 本篇讲的是基于固件 ESP32-WROOM-32-AT-V3.4.0.0&#xff08;内含用户指南, 有AT指令说明&#xff09;的TCP透传设置与使用 设备连接 TTL转USB线, 接ESP32 板 的 GND&#xff0c;RX2&#xff0c; TX2 指令介绍 注意,下面指…

Python知识点:如何使用Python与.NET进行互操作(IronPython)

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; IronPython 是一个开源的 Python 实现&#xff0c;它运行在 .NET 平台上&#xf…

用python给markdown文档加空行

在文本格式化过程中&#xff0c;我们通常会在行与行之间添加一个空行&#xff0c;以提升文档的阅读体验&#xff0c;使其外观更加整洁。 若您处理的文档篇幅较短&#xff0c;手动添加空行也是一个可行的选择。 此外&#xff0c;为了简化这一过程&#xff0c;您可以采用以下Pyt…

Python 路径管理新纪元:pathlib 模块带你玩转文件系统

引言 在早期的 Python 版本中&#xff0c;处理文件路径往往需要依赖于 os 和 os.path 模块&#xff0c;虽然它们功能强大&#xff0c;但复杂的 API 设计使得代码可读性较差。随着 Python 3.4 的发布&#xff0c;pathlib 模块正式登场&#xff0c;它以对象导向的方式简化了路径…

Arthas vmoption(查看和修改 JVM里诊断相关的option)

文章目录 二、命令列表2.1 jvm相关命令2.1.6 vmoption&#xff08;查看和修改 JVM里诊断相关的option&#xff09;举例1&#xff1a;vmoption 查看所有的选项举例2&#xff1a;vmoption MinHeapFreeRatio 查看指定的选项 二、命令列表 2.1 jvm相关命令 2.1.6 vmoption&#x…

list模拟实现(部分)

1.没有实现const迭代器。 #include<iostream> using namespace std; namespace test {template<class T>struct list_node {T _val;list_node<T> * _prev;list_node<T> * _next;list_node(const T& val T()) :_val(val), _prev(nullptr), _next…