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

2023-10-26

敏捷持续集成是什么?

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

好处:

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

整体流程:
成员通过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 in
        start) 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/boost

wget 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 仅当值发生更改时如何插入数据库?

    我需要更新 替换 MySQL 数据库中的字段 但前提是它们已更改 该表包含 ID 文本字段和更改日期 用户根据更改日期通过 ID 查询数据 即 如果该日期早于用户上次查询数据的时间 则他不想要它 仅当文本字段与具有相同 ID 的现有文本字段
  • MySQL - 从临时表插入

    这看起来非常简单 但我坚持使用简单的插入语句 见下文 begin work CREATE TEMPORARY TABLE IF NOT EXISTS insert table AS select r resource id fr file
  • 如何在linux中以编程方式获取dir的大小?

    我想通过 C 程序获取 linux 中特定目录的确切大小 我尝试使用 statfs path struct statfs 但它没有给出确切的大小 我也尝试过 stat 但它返回任何目录的大小为 4096 请建议我如何获取 dir 的确切大小
  • Windows 8.1 升级后 Apache 无法工作 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 今天从 Windows 8 升级到 Windows 8 1 后 Apache 不再工作 我上次从 Windows 7 升级到 Window
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • MySQL“LIKE”搜索不起作用

    我通过 LOAD DATA INFILE 在 MySQL 中导入了一个 txt 数据库 一切似乎都正常 唯一的问题是 如果我使用以下查询在数据库上搜索记录 SELECT FROM hobby WHERE name LIKE Beading
  • 如何获取 (Linux) 机器的 IP 地址?

    这个问题和之前问的几乎一样如何获取本地计算机的IP地址 https stackoverflow com questions 122208 get the ip address of local computer 问题 但是我需要找到一个的I
  • 不带 GROUP BY 的聚合查询

    这个查询似乎在我的旧机器上完美运行 但是 在我的 MySQL 5 7 14 和 PHP 5 6 25 的新机器上 它会抛出错误 致命错误 未捕获异常 PDOException 并带有消息 SQLSTATE 42000 语法错误或访问冲突 1
  • 在 Mono 上运行 .Net MVC5 应用程序

    我正在 Windows 上的 Visual Studio 2013 中开发 Net 4 5 1 MVC5 应用程序 现在我想知道 是否可以在Linux Ubuntu 12 04 上运行这个应用程序 可以使用OWIN吗 Owin 可以自托管运
  • libmysqlclient.a 和 libmysqlclient_r.a 有什么区别?

    我应该使用哪个来链接 mysqlclient 库 它们之间有什么区别 我似乎找不到答案 谢谢 较新版本的 MySQL 客户端发行版不包含 r 版本 有些可能有从 libmyqslclient r a 到 libmyqslclient a 的
  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • 内核的panic()函数是否完全冻结所有其他进程?

    我想确认内核的panic 功能和其他类似kernel halt and machine halt 一旦触发 保证机器完全冻结 那么 所有的内核和用户进程都被冻结了吗 是panic 可以被调度程序中断吗 中断处理程序仍然可以执行吗 用例 如果
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 在 jQuery AJAX 成功中从 MySql 获取特定响应

    好吧 我有这个 ajax 代码 它将在 Success 块中返回 MySql 的结果 ajax type POST url index php success function data alert data My Query sql SE
  • ORDER BY 字段内的 MySQL 子查询。 (没有内连接)

    有很多与此相关的问题 但都具有使用内部联接的相同答案 这 我认为 在这里是不可能的 如果我错了请告诉我 我现在正在做的是调用两个不同的 mysql 查询来获取结果 它工作完美 db gt query SELECT FROM meta WHE

随机推荐

  • unity Input.GetTouch

    触摸交互案例 Input GetTouch 0 deltaPosition 获取触摸滑动增量 float num Input GetTouch 0 deltaPosition y 0 003f 使用y值增量例子 其他 单指点击 using
  • Eclipse + Struts2.x+Spring2.x+Dwr3.x

    我了解过官网关于 dwr3 的介绍后 发现它介绍的配置 dwr 的方法不是与 spring 结合的 也就是说每次进行 dwr 访问 系统都会重新 new 一个 service 来异步处理我们的请求 这对于简单的功能是没什么问题的 但如果涉及
  • 事务的理解

    事务是恢复和 并发控制的基本单位 事务应该具有4个属性 原子性 一致性 隔离性 持久性 这四个属性通常称为 ACID特性 原子性 atomicity 一个事务是一个不可分割的工作单位 事务中包括的诸操作要么都做 要么都不做 一致性 cons
  • Git同时push到Gitee和Github仓库 与 Github对密码认证的支持于2021年8月13日被删除

    目录 Git同时push到Gitee和Github仓库 Github对密码认证的支持于2021年8月13日被删除 Git同时push到Gitee和Github仓库 修改 git confit 文件 如下 然后就可以一条push命令让Gite
  • ROI Pooling和ROI Align、ROI Warp解析

    文中很多内容来源于其他博客 较为详细 有需要可直接按目录跳选到自己需要的部分 目录 简单介绍 实验比较 ROI理解 ROI Pooling ROI Pooling理解 ROI Pooling example ROI Pooling局限性 R
  • list 列表单(多)选(uni-app)

  • 解决vue中v-model绑定的变量赋值给了另一个变量后,两个变量同时改变

    先来看一下问题背景 我们要做一个 搜索 分页 的功能 使用vue 我们将分页控件绑定了点击事件 点击后提交v model绑定的formData表单 但是我们忽略了一个问题 就是当输入的信息改变的情况下 不点击搜索 直接点击分页控件 提交的将
  • redis安装

    Redis安装说明 大多数企业都是基于Linux服务器来部署项目 而且Redis官方也没有提供Windows版本的安装包 因此课程中我们会基于Linux系统来安装Redis 此处选择的Linux版本为CentOS 7 Redis的官方网站地
  • 6、【创业必备企业架构,可开发任意项目】SpringCloud大型企业分布式微服务云架构源码之MySQL 删除数据库

    MySQL 删除数据库 使用普通用户登陆 MySQL 服务器 你可能需要特定的权限来创建或者删除 MySQL 数据库 所以我们这边使用 root 用户登录 root 用户拥有最高权限 在删除数据库过程中 务必要十分谨慎 因为在执行删除命令后
  • Excel VBA:文件选择——Application.FileDialog

    FileDialog 对象 提供文件对话框 其功能与 Microsoft Office 应用程序中标准的 打开 和 保存 对话框类似 说明 使用 FileDialog 属性返回一个 FileDialog 对象 FileDialog 属性位于
  • 彻底理解 fork 之写时复制 《一》

    彻底理解 fork 之写时复制 一 一直以来都对操作系统都比较感兴趣 这篇文章呢就主要研究一下当我们调用fork系统掉用所用到的写时复制技术 copy on write 下图是fork系列函数的调用过程 lt 摘自网络 侵删 gt 写时复制
  • 简单自学web前端——HTML+CSS基础入门

    虽然以前学过 不过还是有一些点忘记啦 所以用一晚上的时间看视频回顾了一下 以下记录自己一些记得不牢固的知识点 html的语法 1 语法不区分大小写 但尽量使用小写 2 文档的注释 lt gt 3 lt DOCTYPE html gt 他是指
  • 设置CAD显示窗体

    AcDbViewTableRecord view AcGePoint3d max acdbHostApplicationServices gt workingDatabase gt extmax min acdbHostApplicatio
  • 多通道输入的卷积计算

    问题 一直不理解一张彩色3通道的图片 经过一个32层的3 3卷积核后 得到的是32通道的输出 如YOLOv3的第一层卷积层 即输入为416 416 3的feature map 经过3 3 32的filer 输出为416 416 32的fea
  • 疯壳Android嵌入式Linux平板开发教程3-7摄像头

    详情地址 https fengke club GeekMart views offline android 官方QQ群 457586268 摄像头 菜单 摄像头 摄像头在板子左下方
  • windows配置DFS

    文章目录 DFS membe端配置工作任务 1 安装及配置DFS 服务 2 目录设置在H DFSsharedir 3 加入到Server03的DFS服务中 4 配置交错拓扑 5 在H DFSsharedir 文件夹内新建所有部门的文件夹 6
  • 回声消除(AEC)原理、算法及实战——LMS(Least Mean Square)

    回声消除是语音通信前端处理中的一种重要技术 产生的原因是 在实时音视频通话中 扬声器播放的声音有再次录进了麦克风去 在即时通讯应用中 需要进行双方 或是多方的实时语音交流 在要求较高的场合 通常都是采用外置音箱放音 这样必然会产生回音 即一
  • 像考研一样学个宇宙之刷题篇:剑指offerⅡ:整数系列——整数除法0706 TODO

    001 整数除法 给定两个整数 a 和 b 求它们的除法的商 a b 要求不得使用乘号 除号 以及求余符号 一些知识点和思路 第一题 easy题 狠狠来了个下马威 首先是 被除数 除数 关于溢出的情况 可以对除数与被除数分别按照他们的临界值
  • 恒玄BES软件平台学习笔记(5)-I2C

    1 hal iomux set i2c0 配置I2C的Pin脚复用 对应也有hal iomux set i2c1 很多驱动代码没有使用这个API 直接配置了Pin脚 代码看起来不够简洁 2 uint32 t hal i2c open enu
  • gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

    文章目录 敏捷持续集成是什么 linux安装jdk和maven 安装jdk 安装maven linux安装nexus3 x nexus私服的使用 编译安装mysql 可能遇到的问题 使用cmake时报错 敏捷持续集成是什么 持续集成是一种软