当前位置: 首页 > news >正文

gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

文章目录

  • 敏捷持续集成是什么?
  • linux安装jdk和maven
    • 安装jdk
    • 安装maven
  • linux安装nexus3.x
  • nexus私服的使用
  • 编译安装mysql
  • 可能遇到的问题
    • 使用cmake时报错

敏捷持续集成是什么?

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

好处:

  • 节省人力成本
  • 加快软件开发进度
  • 实时交付

整体流程:
成员通过git提交代码–》持续集成引擎来去代码并使用构建工具自动构建–》发布项目

重要组成部分:

  • git
  • gitlab
  • jenkins 持续集成引擎
  • maven 构建工具
  • sonarqube 代码质量管理
  • junit 自动执行单元测试
  • JDK
  • Tomcat

几个war–》微服务架构

linux安装jdk和maven

安装jdk1.8maven3.9.1(当前最新)

安装jdk

下载地址:https://www.oracle.com/java/technologies/downloads/

1、下载后的安装包传输到虚拟机文件夹中
2、解压到/usr/local/目录下:tar -zxvf jdk-8u361-linux-x64.tar.gz -C /usr/local/
3、修改环境变量:vim /etc/profile,并在最下面填写:

export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

4、激活配置:source /etc/profile
5、验证安装成功:java -version
在这里插入图片描述

安装maven

下载地址:https://maven.apache.org/download.cgi
在这里插入图片描述
1、下载后的安装包传输到虚拟机文件夹中
2、解压到/usr/local/目录下:tar -zxvf apache-maven-3.9.1-bin.tar.gz -C /usr/local/
3、给解压后的文件改名:mv apache-maven-3.9.1 maven
4、修改环境变量:vim /etc/profile,并在最下面填写:

export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin

5、激活配置:source /etc/profile
6、验证安装成功:mvn -version
在这里插入图片描述

linux安装nexus3.x

下载地址:https://help.sonatype.com/repomanager3/product-information/download

1、上传到服务器:/root/test/
2、解压:tar -zxvf nexus-3.50.0-01-unix.tar.gz -C /usr/local/
3、修改配置文件
修改对应的端口,确保这个端口是空闲的:vim /usr/local/nexus-3.50.0-01/etc/nexus-default.properties
在这里插入图片描述

修改防火墙:vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
开放8081端口:firewall-cmd --permanent --add-port=80/tcp --permanent
在这里插入图片描述
在这里插入图片描述

4、进入目录/usr/local/nexus-3.50.0-01/bin,启动nexus:./nexus start
5、访问域名+端口,验证启动成功:
在这里插入图片描述

6、默认登录名:admin,根据提示查看文件获取密码:/usr/local/sonatype-work/nexus3/admin.password,修改自定义密码
7、配置开机自启动

  • /etc/init.d目录下创建服务脚本nexus:
#!/bin/bash
#chkconfig:2345 20 90
#description:nexus
#processname:nexus
export NEXUS_HOME=/usr/local/nexus-3.50.0-01
case $1 instart) su root $NEXUS_HOME/bin/nexus start;;stop) su root $NEXUS_HOME/bin/nexus stop;;status) su root $NEXUS_HOME/bin/nexus status;;restart) su root $NEXUS_HOME/bin/nexus restart;;dump ) su root $NEXUS_HOME/bin/nexus dump ;;console ) su root $NEXUS_HOME/bin/nexus console ;;*) echo "require console | start | stop | restart | status | dump " ;;
esac
  • 给nexus脚本设置可执行权限:chmod +x /etc/init.d/nexus
  • 添加nexus服务:`chkconfig --add nexus
  • 添加开机自启动:chkconfig nexus on

可以使用此类方式快捷使用服务:service nexus status

nexus私服的使用

仓库类型
在这里插入图片描述

proxy:代理仓库,用于代理远程仓库
group:仓库组,通常包含了多个代理仓库和宿主仓库,在项目中只要引入仓库组就可以下载到代理仓库和宿主仓库中的包
hosted:宿主仓库,内部项目、付费jar​ releases 发布内部release版本的仓库​ snapshots 发布内部snapshots版本的仓库​ third 自建第三方jar

1、配置仓库代理:http://maven.aliyun.com/nexus/content/groups/public/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、使用本地maven配置验证nexus配置是否成功:

  • 修改maven目录下的conf/setting.xml
<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository>D:\SoftWare\install\IDEA2020\apache-maven-3.6.1\repository</localRepository><pluginGroups/><proxies/><servers><server><id>zyten-releases</id><username>admin</username><password>root</password></server><server><id>zyten-snapshots</id><username>admin</username><password>root</password></server></servers><mirrors/><profiles><profile><id>zyten</id><activation><activeByDefault>false</activeByDefault></activation><!-- 私有库地址--><repositories><repository><id>zyten</id><url>http://10.24.200.10:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories><!--插件库地址--><pluginRepositories><pluginRepository><id>zyten</id><url>http://10.24.200.10:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories></profile></profiles><activeProfiles><activeProfile>zyten</activeProfile></activeProfiles>
</settings>
  • 测试是否nexus搭建成功:
    新增:
    在这里插入图片描述
    nexus私服验证成功:
    在这里插入图片描述在这里插入图片描述

3、本地项目打包发到远程nexus私服:pom添加本地没有的依赖,看nexus会不会代理​ mvn deploy看是否成功推送至nexus

  • pom配置:id值要和setting.xml中对应
<distributionManagement><repository><id>zyten-releases</id><name>Ruizhi Release Repository</name><url>http://10.24.200.10:8081/repository/maven-releases/</url></repository><snapshotRepository><id>zyten-snapshots</id><name>Ruizhi Snapshot Repository</name><url>http://10.24.200.10:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>
  • mvn cleanmvn deploy
    在这里插入图片描述
  • 验证成功:
    在这里插入图片描述

编译安装mysql

下载地址:https://mirrors.sohu.com/mysql/MySQL-5.7/
下载到root/test/目录下:
在这里插入图片描述
1、解压:tar -zxvf mysql-5.7.37.tar.gz
2、安装相应的依赖:yum install make cmake gcc gcc-c++ bison bison-devel ncurses ncurses-devel autoconf automake wget
3、下载boost:

mkdir /usr/local/boost
cd /usr/local/boostwget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz --no-check-certificate

4、添加用户并创建相应目录存放数据:

useradd mysql
cd /home/mysql/
mkdir data logs temp​
chown -R mysql:mysql data logs temp

5、进入mysql的解压目录:cd /root/test/mysql-5.7.37/,并执行cmake:

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/home/mysql/data \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_BOOST=/usr/local/boost

6、使用make进行编译​,使用make install进行安装
在这里插入图片描述
在这里插入图片描述

7、修改mysql安装目录权限:chown -R mysql:mysql /usr/local/mysql
8、配置权限vi /etc/profile,添加mysql目录export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH,配置生效source /etc/profile
9、初始化mysql:mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data,产生密码[kkgTgwx-+4st]
在这里插入图片描述

10、删除/etc下的my.cnf:rm /etc/my.cnf
11、复制服务启动脚本:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
12、启动 MySQL 服务:service mysql start
在这里插入图片描述
在这里插入图片描述

13、设置mysql服务开机自启动:chkconfig mysql on
14、登陆mysql并设置可远程登陆:mysql -u root -p
粘贴初始化时产生的临时密码[kkgTgwx-+4st]
在这里插入图片描述

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'zyten' WITH GRANT OPTION;
此时不让改,提示要先设置下密码​:SET PASSWORD = PASSWORD('zyten');​
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;​
flush privileges;​
在这里插入图片描述

exit;
​ 重新登陆,使用刚刚设置的密码​mysql -u root -p登陆完成之后,即可设置允许远程登陆​:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'zyten' WITH GRANT OPTION;
在这里插入图片描述

15、进入文件vim /etc/sysconfig/iptables,加入-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT,重启防火墙服务service iptables restart开启防火墙端口
16、使用连接工具测试远程连接,验证成功:成功

可能遇到的问题

使用cmake时报错

cmake编译会有缓存,每次编译前要清下缓存:rm CMakeCache.txt

相关文章:

gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

文章目录敏捷持续集成是什么&#xff1f;linux安装jdk和maven安装jdk安装mavenlinux安装nexus3.xnexus私服的使用编译安装mysql可能遇到的问题使用cmake时报错敏捷持续集成是什么&#xff1f; 持续集成是一种软件开发实践&#xff0c;即团队开发成员经常集成他们的工作&#x…...

一、Java基础(2)

本章概要 异常的分类及处理 异常的概念异常的分类处理异常的方式 反射机制 动态语言的概念反射机制的概念反射的作用Java 的反射 API反射的过程创建对象的两种方式Method 的 invoke 方法 1.2 异常的分类及处理 1.2.1 异常的概念 异常指在方法不能按正常方式完成时&#xf…...

软件设计师重要知识点——第一章——计算机组成与体系结构

目录 1.1数据的表示 1.2数值表示范围 1.3浮点的运算 1.4计算机结构 1.5计算机体系结构分类——Flynn 1.6指令的基本概念 1.7寻址方式 1.8CISC与RISC 1.9流水线 1.10层次化存储结构 1.11Cache 1.12主存——编址与计算 1.13总线 1.14串联系统与并联系统 1.15N模混…...

编程学习心得

我来写一些&#xff0c;我关于编程的简单认识吧。 我觉得编程是一门艺术&#xff0c;也是一项技能&#xff0c;需要不断地学习和练习。无论是初学者还是有经验的开发人员&#xff0c;都需要耐心和恒心&#xff0c;才能够成为一名优秀的程序员。以下是一些关于编程学习的心得和…...

web获取媒体流

1. 下面例子演示了录屏和截图功能&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport"…...

代码随想录算法训练营第四十二天 | 01背包问题,你该了解这些、01背包问题,你该了解这些 滚动数组、 416. 分割等和子集

打卡第42天&#xff0c;搞搞01背包。 今日任务 01背包问题&#xff0c;你该了解这些&#xff01;01背包问题&#xff0c;你该了解这些&#xff01; 滚动数组416.分割等和子集 背包问题1.0 &#xff1a;0-1 背包 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weig…...

【Android】JNI静态与动态注册介绍

JNI的两种注册机制&#xff1a;静态注册和动态注册. 一、JNI介绍 JNI(Java Native Interface)&#xff0c;即Java本地接口&#xff0c;JNI是Java调用Native 语言的一种特性。通过JNI可以使得Java与C/C机型交互. 方式&#xff1a; 静态注册动态注册&#xff1a;需要提供Java中…...

【算法题解】22. 接雨水

这是一道 困难 题 题目来自&#xff1a; https://leetcode.cn/problems/trapping-rain-water/ 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,…...

集合详解之(四)集合的遍历

文章目录&#x1f412;个人主页&#x1f3c5;JavaSE系列专栏&#x1f4d6;前言&#xff1a;&#x1f380;ArrayList集合forEach()方法遍历&#x1f380;for循环遍历&#xff08;针对List集合&#xff09;&#x1fa85;增强for循环&#xff08;也支持Set集合&#xff09;&#x…...

【I2C】通用驱动i2c-dev分析

文章目录1. 前言2. i2c-dev驱动的注册过程3. open_i2c_dev函数分析4. set_slave_addr函数分析5. i2c_read_bytes函数分析1. 前言 前面分析i2c-tool测试工具就是基于drivers/i2c/i2c-dev.c驱动来实现的。i2c-dev驱动在加载时会遍历所有的I2C总线(i2c_bus_type)上所有注册的adap…...

用GPT-4写代码不用翻墙了?Cursor告诉你:可以~~

目录 一、介绍 二、使用方法 三、其他实例 1.正则表达式 2.自动化测试脚本 3.聊聊技术 一、介绍 Cursor主要功能是根据用户的描述写代码或者进行对话&#xff0c;对话的范围仅限技术方面。优点是不用翻墙、不需要账号。Cursor基于GPT模型&#xff0c;具体什么版本不祥&#…...

硬件语言Verilog HDL牛客刷题day03 时序逻辑部分

1.VL21 根据状态转移表实现时序电路 1.题目&#xff1a; 某同步时序电路转换表如下&#xff0c;请使用D触发器和必要的逻辑门实现此同步时序电路&#xff0c;用Verilog语言描述。 2.解题思路 2.1 首先同步时序电路 &#xff0c; 时钟上升沿触发&#xff0c; 复位信号rst 低电…...

day31 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和 在本次的题目中&#xff0c;我们使用了贪心算法来解决三个问题&#xff1a;分发饼干、摆动序列、最大子序和。这三个问题都可以使用贪心算法来解决&#xff0c;而且贪心算法的时间复杂度相对较低&#xff0c;能够在较短的…...

MobTech 秒验|本机号码一键登录会泄露隐私吗

本机号码一键登录是一种新型的应用登录方式&#xff0c;它可以利用运营商的数据网关认证能力&#xff0c;实现手机号免密登录&#xff0c;提高用户体验和转化率&#xff0c;降低验证成本和流失率。本机号码一键登录支持三大运营商号码认证&#xff0c;3秒内完成手机号验证&…...

2023年供销合作社研究报告

第一章 行业概况 1.1 供销合作社概述 中华全国供销合作总社&#xff0c;是中华人民共和国全国供销合作社的联合组织。中华全国供销合作总社的前身可以追溯到1949年11月成立的中央合作事业管理局。在新中国成立初期&#xff0c;供销合作社就基本形成了自上而下、覆盖全国的组织…...

【ansible】实施任务控制

目录 实施任务控制 一&#xff0c;循环&#xff08;迭代&#xff09;--- loop 1&#xff0c;利用loop----item循环迭代任务 2&#xff0c;item---loop循环案例 1&#xff0c;定义item循环列表 2&#xff0c;通过变量应用列表格式 3&#xff0c;字典列表&#xff08;迭代嵌套子…...

49天精通Java,第11天,java接口和抽象类的异同,default关键字

目录一、什么是接口二、接口的特点三、接口和类的区别四、接口和抽象类的区别五、接口的声明方式六、default默认方法大家好&#xff0c;我是哪吒。 一、什么是接口 Java接口是一系列方法的声明&#xff0c;是一些方法特征的集合&#xff0c;一个接口只有方法的特征没有方法的…...

JAVA练习99-逆波兰表达式求值

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、题目-逆波兰表达式求值 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 4月5…...

恶意软件、恶意软件反杀技术以及反病毒技术的详细介绍

1.恶意软件简单介绍恶意软件是指在计算机系统上执行恶意任务的病毒、蠕虫和特洛伊木马的程序&#xff0c;通过破坏软件进程来实施控制。腾讯移动安全实验室发布的数据显示&#xff0c;恶意软件由多种威胁组成&#xff0c;会不断弹出&#xff0c;所以需要采取多种方法和技术来进…...

【数据库运维】mysql备份恢复练习

目录 数据库备份&#xff0c;数据库为school&#xff0c;素材如下 1.创建student和score表 2.为student表和score表增加记录 3.备份数据库school到/backup目录 4.备份MySQL数据库为带删除表的格式&#xff0c;能够让该备份覆盖已有数据库而不需要手动删除原有数据库 5.直接将My…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

手动给中文分词和 直接用神经网络RNN做有什么区别

手动分词和基于神经网络&#xff08;如 RNN&#xff09;的自动分词在原理、实现方式和效果上有显著差异&#xff0c;以下是核心对比&#xff1a; 1. 实现原理对比 对比维度手动分词&#xff08;规则 / 词典驱动&#xff09;神经网络 RNN 分词&#xff08;数据驱动&#xff09…...

基于 HTTP 的单向流式通信协议SSE详解

SSE&#xff08;Server-Sent Events&#xff09;详解 &#x1f9e0; 什么是 SSE&#xff1f; SSE&#xff08;Server-Sent Events&#xff09; 是 HTML5 标准中定义的一种通信机制&#xff0c;它允许服务器主动将事件推送给客户端&#xff08;浏览器&#xff09;。与传统的 H…...

C#最佳实践:为何优先使用as或is而非强制转换

C#最佳实践&#xff1a;为何优先使用as或is而非强制转换 在 C# 的编程世界里&#xff0c;类型转换是我们经常会遇到的操作。就像在现实生活中&#xff0c;我们可能需要把不同形状的物品重新整理归类一样&#xff0c;在代码里&#xff0c;我们也常常需要将一个数据类型转换为另…...