gitlab/gerrit

news2024/12/28 12:58:34

gitlab/gerrit

    • 1. gitlab
    • 2. gerrit
      • 2.1 环境准备
      • 2.2 下载软件
      • 2.3 创建启动账户
      • 2.4 安装gerrit
      • 2.5 创建登录账户
      • 2.6 启动服务
      • 2.7 修改配置文件
      • 2.8 配置反向代理(nginx)
      • 2.9 gerrit主页
    • 3. gitlab+gerrit
      • 3.1 配置gerrit replication功能(用于复制具体项目)
      • 3.2 新建项目
      • 3.3 提交文件
      • 3.4 配置gitlab/gerrit服务器互信
      • 3.5 创建gerrit项目
      • 3.6 编辑gerrit配置文件
      • 3.7 验证Gerrit和Gitlab的集成效果-使用客户端直接提交代码到Gitlab

首先声明:本文在最后gitlab和gerrit关联部分配置有问题,导致后来代码提交不了,所以本文仅作为了解配置过程使用,不可作为搭建模板

1. gitlab

安装配置参考 CHAPTER 3 Jenkins SVN GItlab
在这里插入图片描述

# 启动容器
docker run  -itd  -p 9980:80  -p 9922:22  -v /home/gitlab/etc:/etc/gitlab   -v /home/gitlab/log:/var/log/gitlab  -v /home/gitlab/opt:/var/opt/gitlab  --restart always  --privileged=true  --name gitlab  gitlab/gitlab-ce

账号:root
密码:Newm123@

这里由于是docker启动gitlab,所以有些配置需要在容器中修改

#进容器内部
docker exec -it gitlab /bin/bash
 
#修改gitlab.rb
vi /etc/gitlab/gitlab.rb
 
#加入如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://192.168.124.194'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.124.194'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
 
# 让配置生效
gitlab-ctl reconfigure
# 修改http和ssh配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
 
  gitlab:
    host: 192.168.124.194
    port: 9980 # 这里改为9980
    https: false


#重启gitlab 
gitlab-ctl restart
#退出容器 
exit

然后配置gitlab免密登录才能使用

2. gerrit

Gerrit,一种免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。它使用Git作为底层版本控制系统。它分支自Rietveld,作者为Google公司的Shawn Pearce,原先是为了管理Android计划而产生。

这个软件的名称,来自于荷兰设计师赫里特·里特费尔德(Gerrit Rietveld)。最早它是由Python写成,在第二版后,改成用Java与SQL。使用Google Web Toolkit来产生前端的JavaScript。

2.1 环境准备

  • CentOS7.9

  • Java 11

  • Git配置解决Gerrit中文编码支持

    # git utf-8配置
    git config --global core.quotepath false
    git config --global i18n.logoutputencoding utf8
    git config --global i18n.commitencoding utf8
    
  • 安装git工具,gerrit使用git命令执行git相关命令

    	cd  /etc/yum.repos.d
    mkdir  repobak
    mv *.repo   repobak
    
    
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    yum clean all
    yum makecache
    

    yum安装git

    # 安装
    [root@gerrit ~]# yum -y install git
    # 验证
    [root@gerrit ~]# git --version
    git version 1.8.3.1
    

    此处建议通过源码编译安装(推荐)新版本的 git,需要自行下载 git 源码来编译安装。

    本地的git版本不能太低,容易引起位置错误。笔者贪图省事安装的1.8.3.1,结果提交的时候各种报错,而且各种不好查

    1、卸载旧版本 git

    yum remove git
    

    2、进入 Github 中的 git 版本页面 ,或者在镜像站,自行选择版本下载,我这里下载的是 git-2.30.2.tar.gz
    3、将本地的安装包上传到 linux 服务器上,我这里放在 /home/software 目录下

    4、解压压缩包,得到目录 git-2.30.2,位置在 /home/software/git-2.30.2

    tar -zxvf git-2.30.2.tar.gz
    

    5、提前安装可能需要的依赖

    yum install curl-devel expat-devel openssl-devel zlib-devel gcc-c++ 
    yum install perl-ExtUtils-MakeMaker automake autoconf libtool make
    

    6、编译安装 Git

    进入到 git-2.30.2 目录,执行编译安装等命令

    cd git-2.30.2
    make configure
    ./configure --prefix=/usr/local/git
    make profix=/usr/local/git
    make install
    

    7、将 git 加入环境变量中,修改 /etc/profile 文件,在 profile 文件末尾追加配置内容

    编辑配置文件

    vim /etc/profile
    

    末尾追加

    export GIT_HOME=/usr/local/git
    export PATH=$PATH:$GIT_HOME/bin
    

    8、刷新 profile 配置文件

    source /etc/profile
    

    9、查看是否配置成功

    git --version
    git version 2.30.2
    

    配置成功!

2.2 下载软件

官网 https://www.gerritcodereview.com/
在这里插入图片描述

# 创建一个存放有关gerrit的目录
mkdir /usr/local/gerrit
cd /usr/local/gerrit
# 下载gerrit war包
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.8.0.war

2.3 创建启动账户

[root@nexus-254 gerrit]# useradd gerrit
[root@nexus-254 gerrit]# passwd gerrit
Changing password for user gerrit.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@nexus-254 gerrit_site]# grep 'gerrit'  /etc/sudoers	#为gerrit赋予执行权限
gerrit  ALL=(ALL)       ALL
[root@nexus-254 gerrit]# su - gerrit
[gerrit@nexus-254 ~]$ cd /usr/local/gerrit/
[gerrit@nexus-254 gerrit]$

2.4 安装gerrit

[gerrit@nexus-254 gerrit]$ java -jar gerrit-3.8.0.war init -d ~/gerrit_site
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore

*** Gerrit Code Review 3.8.0
***


*** Git Repositories
***

Location of Git repositories   [git]:

*** JGit Configuration
***


*** Index
***

Type                           [lucene]:

*** User Authentication
***

Authentication method          [http/?]: http
Get username from custom HTTP header [y/N]?
SSO logout URL                 :
Enable signed push support     [y/N]?

*** Review Labels
***

Install Verified label         [y/N]?

*** Email Delivery
***

SMTP server hostname           [localhost]:
SMTP server port               [(default)]:
SMTP encryption                [none/?]:
SMTP username                  :

*** Container Process
***

Run as                         [gerrit]:
Java runtime                   [/usr/lib/jvm/java-11-openjdk-11.0.18.0.10-1.el7_9.x86_64]:
Upgrade /home/gerrit/gerrit_site/bin/gerrit.war [Y/n]?
Copying gerrit-3.8.0.war to /home/gerrit/gerrit_site/bin/gerrit.war

*** SSH Daemon
***

Listen on address              [*]:
Listen on port                 [29418]: 8890

*** HTTP Daemon
***

Behind reverse proxy           [y/N]?
Use SSL (https://)             [y/N]?
Listen on address              [*]:
Listen on port                 [8081]: 8890
Canonical URL                  [http://192.168.70.249:8080/]: ^C[gerrit@nexus-254 gerrit]$
[gerrit@nexus-254 gerrit]$ java -jar gerrit-3.8.0.war init -d ~/gerrit_site
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore

*** Gerrit Code Review 3.8.0
***


*** Git Repositories
***

Location of Git repositories   [git]:

*** JGit Configuration
***


*** Index
***

Type                           [lucene]:

*** User Authentication
***

Authentication method          [http/?]: http			#修改此处
Get username from custom HTTP header [y/N]?
SSO logout URL                 :
Enable signed push support     [y/N]?

*** Review Labels
***

Install Verified label         [y/N]?

*** Email Delivery
***

SMTP server hostname           [localhost]:
SMTP server port               [(default)]:
SMTP encryption                [none/?]:
SMTP username                  :

*** Container Process
***

Run as                         [gerrit]:
Java runtime                   [/usr/lib/jvm/java-11-openjdk-11.0.18.0.10-1.el7_9.x86_64]:
Upgrade /home/gerrit/gerrit_site/bin/gerrit.war [Y/n]?
Copying gerrit-3.8.0.war to /home/gerrit/gerrit_site/bin/gerrit.war

*** SSH Daemon
***

Listen on address              [*]:
Listen on port                 [29418]:

*** HTTP Daemon
***

Behind reverse proxy           [y/N]?
Use SSL (https://)             [y/N]?
Listen on address              [*]:
Listen on port                 [8081]:
Canonical URL                  [http://192.168.70.249:8080/]:

*** Cache
***
*** Plugins
***

Installing plugins.
Install plugin codemirror-editor version v3.8.0 [y/N]?
Install plugin commit-message-length-validator version v3.8.0 [y/N]?
Install plugin delete-project version v3.8.0 [y/N]?
Install plugin download-commands version v3.8.0 [y/N]?
Install plugin gitiles version v3.8.0 [y/N]?
Install plugin hooks version v3.8.0 [y/N]?
Install plugin plugin-manager version v3.8.0 [y/N]?
Install plugin replication version v3.8.0 [y/N]?
Install plugin reviewnotes version v3.8.0 [y/N]?
Install plugin singleusergroup version v3.8.0 [y/N]?
Install plugin webhooks version v3.8.0 [y/N]?
Initializing plugins.
No plugins found with init steps.

============================================================================
Welcome to the Gerrit community

Find more information on the homepage: https://www.gerritcodereview.com
Discuss Gerrit on the mailing list: https://groups.google.com/g/repo-discuss
============================================================================
Initialized /home/gerrit/gerrit_site

2.5 创建登录账户

[root@nexus-254 gerrit_site]# yum install httpd-tools
[root@nexus-254 gerrit_site]# htpasswd -cb /etc/httpd/passwords admin centos
Adding password for user admin
[root@nexus-254 gerrit_site]# htpasswd -b /etc/httpd/passwords dev ubuntu
Adding password for user dev
[root@nexus-254 gerrit_site]# cat /etc/httpd/passwords
admin:$apr1$xBLi7KRG$ih1tsU.sxxzi32JhyOGEf/
dev:$apr1$Tgk3UiFs$4I/0Ndo01XUc11eS3O1Wm0

2.6 启动服务

[gerrit@nexus-254 gerrit_site]$ sudo ./bin/gerrit.sh start
[sudo] password for gerrit:
Starting Gerrit Code Review: Already Running!!

此时访问gerrit主页面仍会报错
在这里插入图片描述

2.7 修改配置文件

[gerrit@nexus-254 gerrit_site]$ cat etc/gerrit.config
[gerrit]
        basePath = git
        canonicalWebUrl = http://192.168.70.249:8081/		#gerrit端口
        serverId = 951f7595-f1e0-4847-9fa8-7a0344349253
[database]
        type = h2
        database = /home/gerrit/gerrit_site/db/ReviewDB
[container]
        javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
        javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
        user = gerrit
        javaHome = /usr/lib/jvm/java-11-openjdk-11.0.18.0.10-1.el7_9.x86_64
[index]
        type = lucene
[auth]
        type = HTTP
        userNameCaseInsensitive = true
[receive]
        enableSignedPush = false
[sendemail]
        smtpServer = localhost
[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = http://*:8081/			#gerrit端口
[cache]
        directory = cache

重启gerrit

配置文件中的端口要统一

2.8 配置反向代理(nginx)

[root@nexus-254 gerrit_site]# cat /etc/nginx/nginx.conf
...
     server {
        listen 8082;											#反向代理端口
        server_name localhost;

        location / {
            #root html;
            #index index.html index.htm;
            auth_basic "Gerrit Code Review";
            auth_basic_user_file /etc/httpd/passwords;
            proxy_pass http://192.168.70.249:8081;				#gerrit端口
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $host;
                         }
                }


}

重启nginx

2.9 gerrit主页

在这里插入图片描述

3. gitlab+gerrit

此时我们需要将代码推送到gerrit,然后代码在gerrit review完成后,推送到gitlab

3.1 配置gerrit replication功能(用于复制具体项目)

由于前文中,安装gerrit 插件的时候全部pass了,所以此处需要重新安装插件。

  1. 正常情况下,可以在界面plugins中选择插件,笔者不清楚自己哪里配置出现的问题,无法访问插件列表,所以只能重新初始化gerrit进行安装
  2. 初始化gerrit安装插件
    [gerrit@nexus-254 gerrit]$ java -jar gerrit-3.8.0.war init -d ~/gerrit_site
    ...
    *** Plugins
    ***
    
    Installing plugins.
    Install plugin codemirror-editor version v3.8.0 [y/N]? y
    Installed codemirror-editor v3.8.0
    Install plugin commit-message-length-validator version v3.8.0 [y/N]? y
    Installed commit-message-length-validator v3.8.0
    Install plugin delete-project version v3.8.0 [y/N]? y
    Installed delete-project v3.8.0
    Install plugin download-commands version v3.8.0 [y/N]? y
    Installed download-commands v3.8.0
    Install plugin gitiles version v3.8.0 [y/N]? y
    Installed gitiles v3.8.0
    Install plugin hooks version v3.8.0 [y/N]? y
    Installed hooks v3.8.0
    Install plugin plugin-manager version v3.8.0 [y/N]? y
    Installed plugin-manager v3.8.0
    Install plugin replication version v3.8.0 [y/N]? y
    Installed replication v3.8.0
    Install plugin reviewnotes version v3.8.0 [y/N]? y
    Installed reviewnotes v3.8.0
    Install plugin singleusergroup version v3.8.0 [y/N]? y
    Installed singleusergroup v3.8.0
    Install plugin webhooks version v3.8.0 [y/N]? y
    Installed webhooks v3.8.0
    Initializing plugins.
    
    Initialized /home/gerrit/gerrit_site
    

3.2 新建项目

  1. 新增群组
    在这里插入图片描述
  2. 新建项目
    在这里插入图片描述
  3. 查看
    在这里插入图片描述
    如果出现"An error occurred while fetching folder content."报错,大概率是服务器内存不够,可适当加大内存,或者等一等。

可以新增用户yurq,把用户添加到Devs群中,这样yurq可以进行代码下载和上传
yurq / Newm123@123
在这里插入图片描述
不过我们在前面已经配置了免密登录,代码可以直接推送到gitlab

3.3 提交文件

  1. 下载代码
    [root@node-253 git]# git clone ssh://git@192.168.70.249:9922/devs/mypython.git
    Cloning into 'mypython'...
    The authenticity of host '[192.168.70.249]:9922 ([192.168.70.249]:9922)' can't be established.
    ECDSA key fingerprint is SHA256:b5JAzYRCuG7/IftDYp0F2ZoHAUgwszzyOnYU3pQyDm8.
    ECDSA key fingerprint is MD5:57:58:36:b7:25:04:93:23:df:cb:8b:a5:68:a6:cb:85.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '[192.168.70.249]:9922' (ECDSA) to the list of known hosts.
    remote: Enumerating objects: 9, done.
    remote: Counting objects: 100% (9/9), done.
    remote: Compressing objects: 100% (8/8), done.
    remote: Total 9 (delta 1), reused 0 (delta 0), pack-reused 0
    Receiving objects: 100% (9/9), done.
    Resolving deltas: 100% (1/1), done.
    
    只有第一次需要输入yes,后面就不需要了
  2. 编写代码
    [root@node-253 mypython]# cat mypython.py
    #!/usr/bin/env python
    import time
    
    print("hello world!", time.strftime("%Y-%m-%d %H:%M:%S - ", time.localtime()))
    
  3. 提交代码
    [root@node-253 mypython]# git add mypython.py
    [root@node-253 mypython]# git commit mypython.py
    [main 862de96] hello world! time
     1 file changed, 4 insertions(+)
     create mode 100644 mypython.py
    [root@node-253 mypython]# git push
    warning: push.default is unset; its implicit value is changing in
    Git 2.0 from 'matching' to 'simple'. To squelch this message
    ...
    To ssh://git@192.168.70.249:9922/devs/mypython.git
       80b3a15..862de96  main -> main
    
    这里我们没建分支,均在main进行操作,在生产环境中注意切换分支
  4. 查看网页
    在这里插入图片描述
    到现在为止,我们直接可以把代码提交到git

3.4 配置gitlab/gerrit服务器互信

ssh-keygen -t rsa
ssh-copy-id 192.168.71.253

3.5 创建gerrit项目

  1. 在gerrit主页BROWSE,选择Repositories,CREATE NEW ,这里需要创建和gitlab中名称一致的项目,此处我们创建mypython
    注意:gerrit区分大小写,而gitlab不区分。所以我们在前面gitlab创建的MyPython,在gerrit中需要创建mypython。
    在这里插入图片描述

  2. 在gerrit生成密钥

    ssh-keygen -t rsa
    

    将公钥配置到gitlab和gerrit中
    在这里插入图片描述
    在这里插入图片描述

  3. 客户端克隆gerrit的代码
    后续通过从gerrit下载的代码进行修改,提交

3.6 编辑gerrit配置文件

  1. 在Gerrit服务器上编辑同步Gitlab的配置文件
cd /home/gerrit/gerrit_site
mkdir .ssh; cd .ssh
touch config
[root@nexus-254 gerrit_site]# cat .ssh/config
HOST 192.168.70.249       
IdentityFile /root/.ssh/id_rsa

PreferredAuthenticationns publickey
chmod 600 review_site/.ssh/config       #修改权限~降低安全风险
  1. 配置gerrit replication功能
[root@nexus-254 gerrit_site]# pwd
/home/gerrit/gerrit_site
[root@nexus-254 gerrit_site]# cat etc/replication.config
[remote "mypython"]
projects = mypython
url = git@192.168.70.249:9922/devs/mypython.git
push = +refs/heads/*:refs/heads/*
push = +refs/tags/*:refs/tags/*
push = +refs/changes/*:refs/changes/*
threads = 3

重启gerrit

3.7 验证Gerrit和Gitlab的集成效果-使用客户端直接提交代码到Gitlab

  1. 客户端克隆Gerrit代码后直接提交给main分支

    [root@nexus-254 mypython]# cat mypython.py
    #!/usr/bin/env python
    import time
    
    print("hello world!", time.strftime("%Y-%m-%d %H:%M:%S - Now", time.localtime()))
    
  2. 提交报错

    [root@nexus-254 testrepo]# git push -u origin HEAD:refs/for/master
    Enumerating objects: 3, done.
    Counting objects: 100% (3/3), done.
    Writing objects: 100% (3/3), 240 bytes | 240.00 KiB/s, done.
    Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
    fatal: Unpack error, check server log
    error: remote unpack failed: error Permission denied
    To ssh://192.168.70.249:29418/testrepo
     ! [remote rejected] HEAD -> refs/for/master (n/a (unpacker error))
    error: failed to push some refs to 'ssh://192.168.70.249:29418/testrepo'
    

    笔者花了很长时间研究,并参考网上方案一直没有解决,大概率是前面哪里的配置出了问题,或者版本问题

本次仅为了解配置过程,未能解决的问题先躺平吧,以后有机会在解决

以上部分内容参考 Gerrit - Gerrit与GitLab集成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/721559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入浅出讲解Stable Diffusion原理,新手也能看明白

说明 最近一段时间对多模态很感兴趣,尤其是Stable Diffusion,安装了环境,圆了自己艺术家的梦想。看了这方面的一些论文,也给人讲过一些这方面的原理,写了一些文章,具体可以参考我的文章: 北方…

51单片机驱动 mg996r金属舵机 STC89C52单片机直接驱动金属大舵机

/*无论是大舵机&#xff0c;还是小舵机&#xff0c;控制方法都一样会区别在 大舵机只能接P0口&#xff08;此口外接上拉&#xff0c;驱动电流最大&#xff09;小舵机任意口 */ //#include<reg51.h> //#define uint unsigned int //#define uchar unsigned char //sbit S…

10、架构:组件通信设计

通信是一个应用中不可或缺的一个功能&#xff0c;现如今前端视图类框架大多数都是由数据驱动&#xff0c;通过数据来进行视图层的展示渲染。举个简单的例子如下&#xff0c;这是一个常见的 React 列表渲染&#xff1a; // each const numbers [1, 2, 3, 4, 5]; const listIte…

应用级监控方案Spring Boot Admin

1.简介 Spring Boot Admin为项目常用的监控方式&#xff0c;可以动态的监控服务是否运行和运行的参数&#xff0c;如类的调用情况、流量等。其中分为server与client&#xff1a; server&#xff1a; 提供展示UI与监控服务。client&#xff1a;加入server&#xff0c;被监控的…

C语言王国探险记之函数的简单概念

王国探险记系列 文章目录&#xff08;5&#xff09; 目录 王国探险记系列 文章目录&#xff08;5&#xff09; 前言 一&#xff0c;函数的基本概念 二&#xff0c;调用外部函数和main()函数区别 2.1如果我们将函数的定义放到后面&#xff0c;可不可以呢&#xff1f; 总结…

插值应用案例1

案例1 一阶线性插值 待加工零件外形根据工艺要求在一组数据(x,y)给定&#xff08;如下表&#xff09;&#xff0c;用程控铣床加工时每一刀只能沿着x方向或y方向走非常小的一步&#xff0c;需要从已知数据得到加工步长很小的(x,y)的坐标。 下表中所给x,y数据位于机翼断面的下…

使用Vue脚手架

(193条消息) 第 3 章 使用 Vue 脚手架_qq_40832034的博客-CSDN博客 初始化脚手架 说明 1.Vue脚手架是Vue官方提供的标准化开发工具&#xff08;开发平台&#xff09; 2.最新的版本是4.x 3.文档Vue CLI脚手架&#xff08;命令行接口&#xff09; 具体步骤 1.如果下载缓慢…

Libvirt Event Loop简介

文章目录 前言实现原理处理框架编程接口 原理验证事件订阅服务监听验证流程 前言 Event Loop顾名思义就是事件循环&#xff0c;整个程序是一个大的循环&#xff0c;通过事件来驱动程序要做的事情。传统编程模型是顺序的&#xff0c;程序运行一次然后终止&#xff0c;这种模型简…

JavaScript Day10 DOM详解

DOM DOM是JS操作网页的接口&#xff0c;全称为“文档对象模型”&#xff08;Document Object Model&#xff09;。它的作用是将网页转为一个JS对象&#xff0c;从而可以用脚本进行各种操作&#xff08;比如增删内容&#xff09;。 • 文档 – 文档表示的就是整个的HTML网页文档…

19-Linux 权限

目录 1.用户操作 1.1.创建用户 1.2.配置密码 1.3. 切换用户 2.三种角色 3.文件类型和访问权限 3.1.文件类型 3.2.基本权限 4.修改文件权限 1.用户操作 Linux下有两种用户&#xff1a; 超级用户&#xff08;root&#xff09;普通用户 超级用户&#xff1a;可以再lin…

【Cache】Redis主从复制哨兵模式集群

文章目录 一、Redis 持久化1. 主从复制2. 哨兵模式3. 集群 二、 Redis 主从复制1. 概述2. 主从复制的作用3. 主从复制流程4. 搭建 Redis 主从复制4.1 环境准备4.2 安装 Redis4.3 修改 Master 节点配置文件4.4 修改Slave节点配置文件&#xff08;Slave1和Slave2配置相同&#xf…

【vant移动端表格数据排版】用vant2简单实现一个把PC端表格数据展示在移动端的排版。上拉加载更多,下拉刷新页面,新增,编辑,删除功能

前言 上次做了一个移动端的表格功能&#xff0c;纯表格的那种。 跟PC一样&#xff0c;但是我一直觉得在移动端上写表格很糟糕的体验&#xff0c;毕竟手机就那么大。这不合理。 但是我这公司又需要把PC端的表格的数据展示在移动端。 导致我只能去试试看怎么排版比较好。由于网上…

【Qt-14】QT小知识点

1、关闭程序时报错 解决方案&#xff1a; 报这个错误可能是内存溢出&#xff0c;申请的空间与注销的空间不一致导致&#xff0c;排查了好久&#xff0c;我不是因为这个原因&#xff0c;我的问题如下&#xff0c;没有new窗体。 2、固定QT窗体大小 this->setMinimumSize(QSi…

NLP实战6:seq2seq翻译实战-Pytorch复现-小白版

目录 一、前期准备 1. 搭建语言类 2. 文本处理函数 3. 文件读取函数 二、Seq2Seq 模型 1. 编码器&#xff08;Encoder&#xff09; 2. 解码器&#xff08;Decoder&#xff09; 三、训练 1. 数据预处理 2. 训练函数 四、训练与评估 &#x1f368; 本文为[&#x1f51…

【算法集训之线性表篇】Day 02

文章目录 题目一思路分析代码实现效果 题目二思路分析代码实现效果 题目一 01.设置一个高效算法&#xff0c;将顺序表L的所有元素逆置&#xff0c;要求其空间复杂度为O(1)。 思路分析 首先&#xff0c;根据题目要求&#xff0c;空间复杂度度为O(1),则不能通过空间换时间的方…

为什么编程更关注内存而很少关注CPU?

我们知道&#xff0c;我们编写的程序&#xff0c;不管是什么编程语言&#xff0c;最后执行的时候&#xff0c;基本上都是CPU在完成。之所以说基本上&#xff0c;是因为还有GPU、FPGA等特殊情况。 但不知道大家发现没有&#xff0c;我们编程的时候&#xff0c;经常在关注内存问…

大促转化率精准预估优化论文随笔记

这是一篇阿里妈妈的论文【KDD’23 | 转化率预估新思路&#xff1a;基于历史数据复用的大促转化率精准预估】 常规的销量预测&#xff0c;遇到一些特大事件&#xff0c;直播、大促&#xff0c;一般很难预估得准确。而且现在电商机制也比较多样&#xff0c;预售、平台折扣等。 本…

初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL

目录 MySQL简介 MySQL特性 MySQL体系结构 SQL的四个层次&#xff1a; 连接层&#xff1a; SQL层&#xff1a; 插件式存储引擎&#xff1a; 物理文件层&#xff1a; 一条SQL语句的执行流程&#xff1a; MySQL在Linux中的安装、部署 首先需要下载mysql软件包&#xff…

月入9000+的CSGO游戏搬砖项目操作细节和疑问 ?给您一一解答

科思创业汇 大家好&#xff0c;这里是科思创业汇&#xff0c;一个轻资产创业孵化平台。赚钱的方式有很多种&#xff0c;我希望在科思创业汇能够给你带来最快乐的那一种&#xff01; 01 海外CSGO游戏搬砖项目是什么&#xff1f; csgo搬砖是在外服steam上购买包含印花枪皮等等…

9.2、增量表数据同步

1、数据通道 2、Flume配置 1&#xff09;Flume配置概述 Flume需要将Kafka中topic_db主题的数据传输到HDFS&#xff0c;故其需选用KafkaSource以及HDFSSink&#xff0c;Channel选用FileChannel。 需要注意的是&#xff0c; HDFSSink需要将不同mysql业务表的数据写到不同的路径…