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

CHAPTER 3 Jenkins SVN GItlab

Jenkins SVN GItlab

    • 3.1 Jenkins+SVN
      • 3.1.1 搭建SVN服务器
        • 1. 安装svn server
        • 2. 查看svn安装位置
        • 3. 创建版本库目录
        • 4. 创建svn版本库
        • 5. 配置修改
        • 6. 防火墙开启3690端口
        • 7. 启动SVN-server
        • 8. 客户端访问svn服务器
      • 3.1.2 测试脚本提交
      • 3.1.3 jenkins下载代码配置
        • 1. 安装Subversion插件
        • 2. 创建工程
        • 3. 配置
      • 3.1.4 构建
      • 3.1.5 改为自动构建
        • 1. 构建触发器
        • 2. 执行结果
        • 3. 轮询日志
    • 3.2 Jenkins+Gitlab
      • 3.2.1 搭建gitlab服务器(使用官方镜像搭建)
        • 1. 安装docker及下载镜像
        • 2. 编写docker-compose.yml
        • 3. 启动容器
        • 4. 查看管理员密码
        • 5. 登录gitlab
        • 6. docker搭建
      • 3.2.2 搭建gitlab服务器(使用beginor镜像搭建)
        • 1. 下载镜像
        • 2. 启动容器
        • 3. 登录gitlab
      • 3.2.3 设置gitlab
        • 1. 新建用户
        • 2. 创建项目
        • 3. 项目添加用户
        • 4. 添加密钥
        • 5. 下载代码
        • 6. 上传代码
        • 7. 无法上传
      • 3.2.4 Jenkins配置gitlab
        • 1. 配置hello-world2
        • 2. 节点机安装git
        • 3. 构建任务
      • 3.2.5 自动触发构建
        • 1. 创建触发器
        • 2. 添加webhook
        • 3. 修改Outbound requests
        • 4. Jenkins 远程触发 403 No valid crumb was included in the request
        • 5. 再测试钩子

目前大部分公司的代码都是由SVN或者GIT管理,下面我们将介绍,如何通过jenkins链接到SVN/Gitlab实现自动编译代码

3.1 Jenkins+SVN

我们先搭建个SVN服务器

3.1.1 搭建SVN服务器

1. 安装svn server

yum -y install subversion

2. 查看svn安装位置

[root@dbc-server-554 ~]# rpm -ql subversion
/etc/subversion
/etc/sysconfig/svnserve
/run/svnserve
/usr/bin/svn
/usr/bin/svnadmin
/usr/bin/svndumpfilter
/usr/bin/svnlook
/usr/bin/svnrdump
/usr/bin/svnserve
/usr/bin/svnsync
/usr/bin/svnversion
...

3. 创建版本库目录

此仅为目录,为后面创建版本库提供存放位置。选择在var路径下创建版本库,当前处于根目录下,一次性创建如下:

[root@dbc-server-554 ~]# cd /usr/local/share/;mkdir -p svn/svnrepos

4. 创建svn版本库

创建版本库srclib,命令如下:

[root@dbc-server-554 svnrepos]# /usr/bin/svnadmin create srclib
[root@dbc-server-554 svnrepos]# ls
srclib
[root@dbc-server-554 srclib]# ll
total 8
drwxr-xr-x 2 root root  54 Feb  7 16:34 conf
drwxr-sr-x 6 root root 233 Feb  7 16:34 db
-r--r--r-- 1 root root   2 Feb  7 16:34 format
drwxr-xr-x 2 root root 231 Feb  7 16:34 hooks
drwxr-xr-x 2 root root  41 Feb  7 16:34 locks
-rw-r--r-- 1 root root 229 Feb  7 16:34 README.txt

5. 配置修改

[root@dbc-server-554 srclib]# cd conf/
[root@dbc-server-554 conf]# ll
total 12
-rw-r--r-- 1 root root 1080 Feb  7 16:34 authz	#负责账号权限的管理,控制账号是否读写权限
-rw-r--r-- 1 root root  309 Feb  7 16:34 passwd	#负责账号和密码的用户名单管理
-rw-r--r-- 1 root root 3090 Feb  7 16:34 svnserve.conf	#svn服务器配置文件

添加权限信息

  • [/] 表示根目录,即 /var/svnrepos
  • yurq = rw 表示用户yurq对根目录具有读写权限。
[root@dbc-server-554 conf]# cat authz
...
# @harry_and_sally = rw
# * = r[/]
yurq=rw

添加用户密码

[root@dbc-server-554 conf]# cat passwd
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.[users]
# harry = harryssecret
# sally = sallyssecret
root=123456
yurq=123456

修改svnserver.conf

[general]
anon-access = none # 匿名用户不可读写,也可设置为只读
readauth-access = write # 授权用户可写
password-db = passwd # 密码文件路径,相对于当前目录
realm = /usr/local/share/svn/svnrepos # 认证命名空间,会在认证提示界面显示,并作为凭证缓存的关键字,可以写仓库名称比如svnrepos
#authz-db = authz # 访问控制文件,这条一定不要放开,否在远程连接不会弹出叫你输入用户密码的,然后一直显示认证失败!

[root@dbc-server-554 conf]# cat svnserve.conf
...
[general]
...
# anon-access = read
# auth-access = write
...
password-db = passwd
...
# authz-db = authz
...
realm = /usr/local/share/svn/svnrepos
...
# force-username-case = none[sasl]
...
# use-sasl = true
...
# min-encryption = 0
# max-encryption = 256

6. 防火墙开启3690端口

firewall-cmd --zone=public --add-port=3690/tcp --permanentfirewall-cmd --reload

7. 启动SVN-server

[root@dbc-server-554 svnrepos]# /usr/bin/svnserve -d -r .
[root@dbc-server-554 svnrepos]# ps -ef |grep svn
root     27993     1  0 16:58 ?        00:00:00 /usr/bin/svnserve -d -r .
root     27996 26901  0 16:58 pts/0    00:00:00 grep --color=auto svn

8. 客户端访问svn服务器

在windows客户端,输入地址:svn://ip地址:3690/xxxx (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口),弹出输入用户名和密码,输入即可访问
在这里插入图片描述

在linux服务器输入命令测试:

[root@dbc-server-554 svn]# svn co svn://192.168.5.54:3690/srclib
Checked out revision 0.
[root@dbc-server-554 svn]# ll
total 0
drwxr-xr-x 3 root root 18 Feb  7 17:02 srclib

到这里SVN搭建完成

3.1.2 测试脚本提交

我们写个测试脚本,提交到svn
在这里插入图片描述
打印hello world及次号

3.1.3 jenkins下载代码配置

1. 安装Subversion插件

进入jenkins插件管理页面,在有效插件页面搜索Subversion Plug-in插件,下载并安装。
在这里插入图片描述

2. 创建工程

选择自由风格,创建hello-world,限制运行节点为Node-1
在这里插入图片描述

3. 配置

配置源码管理中的svn
在这里插入图片描述
添加svn凭据
在这里插入图片描述
编写执行语句
在这里插入图片描述

3.1.4 构建

点击立即构建,查看运行结果
在这里插入图片描述

3.1.5 改为自动构建

我们复制hello-world工程,并修改代码

1. 构建触发器

构建触发器分两种:

  • 定时构建Build periodically,例如,每天18点准时触发;
  • 定时检查源码Poll SCM构建,若有变更,则拉取代码进行构建两种触发方式。

这里我们使用定时检查源码轮询构建,两分钟轮询一次
在这里插入图片描述

2. 执行结果

在这里插入图片描述

3. 轮询日志

在这里插入图片描述

3.2 Jenkins+Gitlab

我们使用docker compose搭建gitlab,顺便巩固下前段时间的知识

3.2.1 搭建gitlab服务器(使用官方镜像搭建)

使用官方镜像搭建

1. 安装docker及下载镜像

由于我们使用docker compose搭建gitlab,所以需要安装docker和docker compose,安装方法
docker安装
docker compose安装
安装完成后,查看版本

[root@dbc-server-554 gitlab]# docker -v
Docker version 23.0.0, build e92dd87
[root@dbc-server-554 gitlab]# docker-compose -v
Docker Compose version v2.15.1

下载镜像

[root@dbc-server-554 gitlab]# docker search gitlab/gitlab-ce
NAME                  DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
gitlab/gitlab-ce      GitLab Community Edition docker image based …   3804                 [OK]
gitlab/gitlab-ce-qa   GitLab QA has a test suite that allows end-t…   9
[root@dbc-server-554 gitlab]# docker pull gitlab/gitlab-ce

2. 编写docker-compose.yml

[root@dbc-server-554 gitlab]# cat docker-compose.yml
version: '3.6'
services:web:image: 'gitlab/gitlab-ce:latest'restart: alwayshostname: '192.168.5.54'environment:GITLAB_OMNIBUS_CONFIG: |external_url 'http://192.168.5.54:8929'gitlab_rails['gitlab_shell_ssh_port'] = 2224ports:- '8929:8929'- '2224:22'volumes:- '$GITLAB_HOME/config:/etc/gitlab'- '$GITLAB_HOME/logs:/var/log/gitlab'- '$GITLAB_HOME/data:/var/opt/gitlab'shm_size: '256m'

3. 启动容器

[root@dbc-server-554 gitlab]# docker-compose up -d
WARN[0000] The "GITLAB_HOME" variable is not set. Defaulting to a blank string.
WARN[0000] The "GITLAB_HOME" variable is not set. Defaulting to a blank string.
WARN[0000] The "GITLAB_HOME" variable is not set. Defaulting to a blank string.
[+] Running 1/1⠿ Container gitlab-web-1  Started                                                                                                   1.2s
[root@dbc-server-554 gitlab]# docker ps
CONTAINER ID   IMAGE                     COMMAND             CREATED        STATUS                            PORTS                                                                                               NAMES
17255ad00ec0   gitlab/gitlab-ce:latest   "/assets/wrapper"   19 hours ago   Up 4 seconds (health: starting)   80/tcp, 443/tcp, 0.0.0.0:8929->8929/tcp, :::8929->8929/tcp, 0.0.0.0:2224->22/tcp, :::2224->22/tcp   gitlab-web-1

4. 查看管理员密码

默认管理员账号为root,密码如下获取

[root@dbc-server-554 ~]# docker exec -it 01 grep 'Password:' /etc/gitlab/initial_root_password
Password: wqJ14qc4Om783V/pedOkPz/BSEhN8FywX3PybdSjKKw=

5. 登录gitlab

访问:http://192.168.5.54:8929
在这里插入图片描述

6. docker搭建

也可以使用docker 启动容器

# 启动容器
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

使用官方镜像搭建,严重卡顿,修改缓存等,仍未解决,由于此处主要介绍jenkins+gitlab,所以还是以jenkins为主。

3.2.2 搭建gitlab服务器(使用beginor镜像搭建)

1. 下载镜像

 docker pull beginor/gitlab-ce

2. 启动容器

docker run     --detach     --publish 8443:443     --publish 8080:80     --name gitlab     --restart unless-stopped     --volume /home/gitlab/etc:/etc/gitlab     --volume /home/gitlab/log:/var/log/gitlab     --volume /home/gitlab/data:/var/opt/gitlab     beginor/gitlab-ce:latest

3. 登录gitlab

这个版本的gitlab,第一次登录需要设置密码,账号为root
在这里插入图片描述

3.2.3 设置gitlab

1. 新建用户

建议在生产环境中新建用户并设置好权限管理,请谨慎使用。
在这里插入图片描述
保存后刷新页面,给用户添加密码

2. 创建项目

在这里插入图片描述

3. 项目添加用户

在这里插入图片描述

4. 添加密钥

我们需要把公钥配置到git,配置之后才能使用该账号下载代码

为账号yurq添加SSH-key

[root@k8s-node-02 ~]# ssh-keygen -t rsa -C "yurq@qq.com" -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+K5r/hzhqTD660uc2bUeQ7T+nZ0yKSW2xTDvRf75swg yurq@qq.com
The key's randomart image is:
+---[RSA 4096]----+
|                 |
|                 |
|        .        |
|       o .o   .  |
|      . S  = o   |
|   . + * +o = o  |
|    B . X. E o ..|
|   o o.= =o.*o.+.|
|  .o===+= ..o+o.=|
+----[SHA256]-----+
[root@k8s-node-02 ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDrZj8Hp7tWt5kPBqO2YDOikZB6A8Q6NNbGrrQVxi16Ly4TTWXeYQRBH/7NTMmXv1G51LpZiTfKxy1CLBBOtJeoBxbXr6f2zHVIjGHos7NNVSGq/xPFMjubghi8ow0s8SQFmypIm25hG/bX9L1ul7uAWy6Tvy3Qsq4d/PBEMG+iTtpvy4nL2BANEgyOQ0+vxPrmALh3G/qL99Jq+72mhdxCOdW/fqJ6nMj1k44gNvn/FStDeqFA3FZEkARo+bynZSWUNWhAEyGhiS1HqYZMwq2jkZiZPJdK1GA3bigsi76l+rVwK8AgmzAOrDRItwTRmhn+32tmObbsWFWyHLd0Qwhlss5dkhkwH5FdRI+TGdn9aoVBINODhPaPYp7b2xwDIC3uqG6BHjbV9VHxCFyQxCme0oTIBZHdL6lDtn4kaPXuFAL41FNUaK7yuMg4W/cuXmrBNl6N8Sc+cuW3Syul/wph+ZBW9aCxvDdArv+/b8dEdK1Gk5Oiu7iFxsoqfPTwsS/YE3damqMEcMLj+KP6xyZRB3WV3EIu9WHGErgy3yBim1uB42oK/Gah+FzCXtzbKH2bH6kno8K418Dqh2rh3qIBsDaSPqzjoWA76HIji/7URUYVtLZMGT5B3cMI9xh/ELplZjBmWUzeOc25HTioHJ7j+o3QnQ7+PFYGHC+XoVq7Ew== yurq@qq.com

在这里插入图片描述

5. 下载代码

由于我们的gitlab是由容器启动,所以url显示的主机地址是容器id,此处我们需要修改为启动容器的服务器socket

把空目录下载到本地,然后编辑代码,上传,笔者使用TortoiseGit,遇到"git did not exit cleanly (exit code 128)"问题,参考网上设置反复修改,包括改凭据,改ssh.exe,添加putty key等等方法,仍不能解决

后来索性在命令行执行(windows服务器)

F:\workspace\yurq\tmp\gitlab>git clone http://192.168.5.54:8080/root/hello-world.git
Cloning into 'hello-world'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.

终于将目录下载到本地

6. 上传代码

上传代码也遇到提示数据账号、邮箱等信息,在TortoiseGit进行简单设置就可以解决

以上问题,可能由于设置的项目为私有项目造成的
在这里插入图片描述

7. 无法上传

如果遇到实在无法解决的情况,可以重新创建公共项目,包括添加用户等
再解决不了,可以看下git免密登录等

在这里插入图片描述

3.2.4 Jenkins配置gitlab

曲曲折折终于回到了Jenkins配置

1. 配置hello-world2

新建任务hello-world2,节点还是选择Node-1,源码管理处选择git,并进行配置。
在这里插入图片描述
在这里插入图片描述

2. 节点机安装git

需要在节点机安装git

[root@k8s-node-02 ~]# yum install git
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
base                                                                                                  | 3.6 kB  00:00:00
...

3. 构建任务

笔者也是第二次构建才成功,第一次失败是因为没有在节点安装git
在这里插入图片描述

3.2.5 自动触发构建

1. 创建触发器

jenkins:复制hello-world2项目,并命名为hello-world-webhook,打开项目
选择Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.70.183:8080/project/hello-world-webhook
记录URL
在这里插入图片描述
Secret token:点击Generate,记录Secret token,配置gitlab webhook需要使用
在这里插入图片描述

2. 添加webhook

gitlab:在hello-world2项目,设置,集成创建webhook
在这里插入图片描述

3. 修改Outbound requests

gitlab配置修改:如果不允许钩子…,则会出现访问500问题
在这里插入图片描述

4. Jenkins 远程触发 403 No valid crumb was included in the request

创建完钩子,进行test,发现出现403 No valid crumb was included in the request,原因:
大部分是由跨站请求伪造保护开启导致,高版本jenkins如果要关闭,使用以下方法:
在脚本命令行运行:hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true
在这里插入图片描述
出现如下界面则表示成功
在这里插入图片描述

5. 再测试钩子

可以看到已经成功了
在这里插入图片描述
然后编辑代码,提交,推送

很遗憾,笔者这里自动构建设置未能成功,但是方法是没问题的,此处后续再进行改善,等问题解决了,再更新本文章

相关文章:

CHAPTER 3 Jenkins SVN GItlab

Jenkins SVN GItlab3.1 JenkinsSVN3.1.1 搭建SVN服务器1. 安装svn server2. 查看svn安装位置3. 创建版本库目录4. 创建svn版本库5. 配置修改6. 防火墙开启3690端口7. 启动SVN-server8. 客户端访问svn服务器3.1.2 测试脚本提交3.1.3 jenkins下载代码配置1. 安装Subversion插件2.…...

为什么Redis集群的最大槽数是16384个?

对于客户端请求的key,根据公式HASH_SLOTCRC16(key) mod 16384,计算出映射到哪个分片上,然后Redis会去相应的节点进行操作! 为什么有16384个槽? Redis集群并没有使用一致性hash而是引入了哈希槽的概念。Redis 集群有16…...

餐饮企业数据可视化大屏(智慧餐饮)

随着信息技术的深入发展,数据大屏的适用场景日益广泛,集工作汇报、实时监控和预测分析等功能于一身。 数据可视化的本质是视觉对话,数据可视化将数据分析技术与图形技术结合,清晰有效地将分析结果信息进行解读和传达。 当前很多餐…...

Kafka安装及zookeeper is not a recognized option问题解决

一安装JAVA JDK(略) 二安装ZooKeeper 下载安装包,建议bin版本 http://zookeeper.apache.org/releases.html#download解压并进入ZooKeeper,将“zoo_sample.cfg”重命名为“zoo.cfg” D:\Kafka\apache-zookeeper-3.7.1-bin\conf…...

leetcode刷题 | 关于二叉树的题型总结1

leetcode刷题 | 关于二叉树的题型总结1 文章目录leetcode刷题 | 关于二叉树的题型总结1题目连接完全二叉树插入器在每个树行中找最大值找树左下角的值二叉树的右视图二叉树剪枝题目连接 919. 完全二叉树插入器 - 力扣(LeetCode) 515. 在每个树行中找最…...

webpack新手入门

前言: 如何配置webpack呢? webpack概念有哪些呢? 怎么快速理解并使用webpack呢? 文章目录一. 什么是webpack二. 安装webpack三. webpack的五个核心概念四. webpack配置五. loader加载器1. css处理2. 处理文件(图片&…...

Redis中有常见数据类型

Redis的数据类型 string数据类型 string是redis最基本的类型,而且string类型是二进制安全的。意思是redis的string可以包含任何 数据,比如jpg图片或者序列化的对象 String类型是最基本的数据类型,一个redis中字符串value最多可以是512M r…...

【知识梳理】Go语言核心编程

基础知识 Go语言就是为了解决编程语言对并发支持不友好、编译速度慢、编程复杂这三个问题而诞生的 特点: Go语言选择组合思想,抛弃继承关系通过接口组合,自由组合成新接口,用接口实现层与层之间的解耦语言特性对比: package mainimport "fmt"func main() {fmt…...

Java中动态调用setter以及getter

0x00 前言 对于非专业程序员的安全人员来说,因为没有代码项目的积累,很多知识体系都不完善,所以有必要在一些常用的内容进行学习的总结。 在很多的调用链中都会用到**“动态调用setter以及getter”**这个知识点,比如经典的CB链&a…...

基于 NeRF 的 App 上架苹果商店!照片转 3D 只需一部手机,网友们玩疯了

前言 只用一部手机,现实中的 2D 照片就能渲染出 3D 模型? 没错,无需再手动上传电脑或安装激光雷达,苹果手机自带 App 就能生成 3D 模型。 这个名叫 Luma AI 的“NeRF APP”,正式上架 App Store 后爆火: 小…...

C++类与对象(中)

✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;C &#x1f525;<3>创作者&#xff1a;我的代码爱吃辣 ☂️<4>开发环境&#xff1a;Visual Studio 2022 &#x1f4ac;<5>前言&#xff1a;C类中一共有六个默认成员函…...

计算机软件技术基础复习

数据结构 文章目录数据结构第一节 数据结构的基本概念第二节 线性结构线性表顺序表和链表的特点实现循环队列第三节 非线性结构树操作系统操作系统概述进程和程序存储空间的组织数据库技术数据库设计软件技术软件生命周期第一节 数据结构的基本概念 数据结构&#xff1a;指相互…...

python爬虫--beautifulsoup模块简介

BeautifulSoup 的引入 我们学习了正则表达式的相关用法&#xff0c;但是一旦正则写的有问题&#xff0c;可能得到的就不是我们想要的结果了&#xff0c;而且对于一个网页来说&#xff0c;都有一定的特殊的结构和层级关系&#xff0c;而且很多标签都有 id 或 class 来对作区分&…...

Swfit Copy On Write 原理解析

1. Swift Copy On write 原理是什么 Swift 中的 Copy On Write (COW) 技术是一种内存优化技术&#xff0c;其原理是在需要修改数据时才进行拷贝&#xff0c;以避免不必要的内存消耗。 COW 的实现主要依赖于 Swift 中的结构体和类的特性。对于结构体而言&#xff0c;它是值类型…...

【面试题】经典面试题:让 a == 1 a == 2 a == 3 成立?

一、问题解析 if (a == 1 && a == 2 && a == 3) {console.log(Win) } 复制代码 如何打印除Win? 看到题目的第一眼,我是蒙蔽的.怎么可能会有如此矛盾的情况发生呢?就相当于一个人怎么可能即是小孩,又是成年人,还是老年人呢? 冷静下来,发现一些端倪。...

我是歌手-C语言

“我是歌手”是成名歌手之间的比赛节目&#xff0c;2轮比赛中观众支持率最低者出局。 这里我们假设有n个歌手进行了m轮比赛&#xff0c;请求出局者&#xff08;m轮总分最低者&#xff09;。 输入n个歌手&#xff08;编号依次为1&#xff0c;2&#xff0c;......n&#xff09;…...

Acwing---112.雷达设备

雷达设备1.题目2.基本思想3.代码实现1.题目 假设海岸是一条无限长的直线&#xff0c;陆地位于海岸的一侧&#xff0c;海洋位于另外一侧。 每个小岛都位于海洋一侧的某个点上。 雷达装置均位于海岸线上&#xff0c;且雷达的监测范围为 d&#xff0c;当小岛与某雷达的距离不超…...

SSJ-21A AC220V静态【时间继电器】

系列型号&#xff1a; SSJ-11B静态时间继电器&#xff1b;SSJ-21B静态时间继电器 SSJ-21A静态时间继电器&#xff1b;SSJ-22A静态时间继电器 SSJ-22B静态时间继电器SSJ-42B静态时间继电器 SSJ-42A静态时间继电器SSJ-41A静态时间继电器 SSJ-41B静态时间继电器SSJ-32B静态时间继电…...

m序列发生器——Verilog设计

引言 本篇文章利用Verilog编写一个m序列发生器模块。本文会给出具体的设计、测试源码。 设计说明 模块功能说明: 支持任意位宽的随机数生成;支持本原多项式配置;支持初始种子配置;设计环境: 设计语言:Verilog HDL 设计验证平台:MATLAB R20222a、Vivado 2018.3 m 序列…...

Mysql—触发器

触发器 简介 触发器用于直接在某种操作后&#xff08;数据的增删改查等&#xff09;&#xff0c;通过事件执行设置触发器时的 sql 语句&#xff0c;具有原子性。 可通过 sql 语句直接编写&#xff0c;关键词&#xff1a;CREATE TRIGGER 触发器名称。 例如&#xff1a;在表 st…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...

五子棋测试用例

一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏&#xff0c;有着深厚的文化底蕴。通过将五子棋制作成网页游戏&#xff0c;可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家&#xff0c;都可以通过网页五子棋感受到东方棋类…...