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

jenkins(docker)安装及应用

jenkins

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

CI/CD

CI

CI(Continuous Integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。。

image-20231108100010503

CD

CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。

image-20231108100239312

配置maven(linux)

创建maven文件

在/usr/local/software/下创建maven文件夹

mkdir maven

上传maven解压后的程序

我使用maven3.6.3版本,并创建子文件夹maven-repository存储依赖

[root@localhost apache-maven-3.6.3]# ll
总用量 36
drwxr-xr-x. 2 root root    97 119 10:08 bin
drwxr-xr-x. 2 root root    76 119 10:08 boot
drwxr-xr-x. 3 root root    92 119 10:10 conf
drwxr-xr-x. 4 root root  4096 119 10:08 lib
-rw-r--r--. 1 root root 17504 119 10:08 LICENSE
drwxr-xr-x. 2 root root     6 119 15:41 maven-repository
-rw-r--r--. 1 root root  5141 119 10:08 NOTICE
-rw-r--r--. 1 root root  2612 119 10:08 README.txt

配置settings.xml

进入/usr/local/software/maven/apache-maven-3.6.3/conf 修改settings.xml。 修改存储依赖的位置。

<localRepository>../maven-repository</localRepository>

image-20231109154355066

配置maven环境

编辑/etc/profile文件

M2_HOME=/usr/local/software/maven/apache-maven-3.6.3
export PATH=$PATH:${M2_HOME}/bin

让编辑生效

source /etc/profile

测试配置是否生效

mvn -version

[root@localhost conf]# mvn -version
-bash: /usr/local/software/apache-maven-3.6.3/bin/mvn: 权限不够

解决方案: chmod a+x /usr/local/software/apache-maven-3.6.3/bin/mvn

[root@localhost conf]# chmod a+x /usr/local/software/apache-maven-3.6.3/bin/mvn
[root@localhost apache-maven-3.6.3]# mvn -versionApache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/software/maven/apache-maven-3.6.3
Java version: 1.8.0_341, vendor: Oracle Corporation, runtime: /usr/local/software/jdk/jdk1.8.0_341/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.99.1.el7.x86_64", arch: "amd64", family: "unix"

jenkins安装(docker)配置

安装jenkins

查询jenkins

查询jenkins

docker search jenkinsci/blueocean

image-20231108100811072

下载 jenkins镜像
docker pull jenkinsci/blueocean

image-20231108101121093

创建挂载文件jenkins

在jenkins文件夹中创建 data和jenkins_home

在jekins_home下创建docker.sock文件,并授权777

[root@localhost software]# mkdir jenkins
[root@localhost jenkins]# mkdir data jenkins_home
[root@localhost jenkins]# ls
data  jenkins_home
[root@localhost jenkins]# cd jenkins_home/
[root@localhost jenkins_home]# touch docker.sock
[root@localhost jenkins_home]# chmod 777 docker.sock 
[root@localhost jenkins_home]# tree
.
└── docker.sock
创建运行运行容器
docker run -it \
-u root \
--name jenkins \
--privileged \
-p 9055:8080 \
-p 50000:50000 \
--network wn_docker_net \
--ip 172.18.12.60 \
-v /etc/localtime:/etc/localtime \
-v /usr/local/software/jenkins/data:/var/jenkins_home \
-v /usr/local/software/jenkins/jenkins_home/docker.sock:/var/run/docker.sock \
-v /usr/local/software/apache-maven-3.6.3:/usr/local/maven \
-d jenkinsci/blueocean

image-20231108142959702

开放8087,50000端口
[root@localhost jenkins]# firewall-cmd --zone=public --add-port=8087/tcp --permanent 
success
[root@localhost jenkins]# firewall-cmd --zone=public --add-port=50000/tcp --permanent 
success
[root@localhost jenkins]# firewall-cmd --reload 
success

初次访问

访问管理页面

输入请求地址:http://192.168.201.75:8087

image-20231108143541342

查询jenkins的初始密码

data文件夹映射容器的 /home/jenkins_home

进入secrets文件夹,显示initialAdminPassword。

image-20231108145119118

输入密码

image-20231108145155671

安装插件

image-20231108145326094

image-20231108145356497

image-20231108145451785

点击继续

创建第一个管理员用户

image-20231109140225123

配置实例

image-20231108150138670

重启应用

image-20231108150214874

后台手动重启

[root@localhost jenkins]# docker restart jenkins 
登录系统

image-20231108153144059

image-20231108155052646

配置系统

升级最新版本

image-20231108155840689

image-20231108160008990

image-20231108161801809

image-20231108161843112

重启jenkins

image-20231108164839575

安装jenkins插件
设置镜像源

image-20231113150948023

设置清华的镜像源: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

image-20231108165048585

image-20231108165156418

安装Git插件

image-20231113151055304

image-20231113151110191

image-20231108170248831

重启jenkins容器

docker restart jenkins
安装gitlab插件

image-20231108170646012

系统配置

全局工具配置

image-20231109155157072

配置maven

image-20231113172348209

image-20231113172431231

image-20231113172555809

配置用户凭证

配置用户凭证是为了将来gitlab访问jenkins。

image-20231109155331438

image-20231109155355147

选择stores from parent

image-20231109155432433

image-20231109155604208

image-20231109155931214

image-20231109155955200

jenkins使用

创建一个springboot项目,使用jenkins+gitlab。

gitlab创建maven项目

image-20231109160229627

image-20231109160254409

image-20231109160307786

image-20231109160419549

image-20231109160437086

image-20231109161042371

idea 导入gitlab项目

image-20231109161132018

image-20231109161246699

idea中隐藏不必要的文件/夹(可选)
image-20231109161421122

image-20231109161905444 image-20231109161952563

image-20231109162054047

image-20231109162119223

image-20231109162156893

image-20231109162215870
修改项目名称

在pom.xml中修改

<groupId>com.wnhz.bms</groupId>
<artifactId>wnhz-bms</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging><name>wnhz-bms</name>
<description>使用jenkins构建项目</description>

image-20231109162536683

创建项目提交到gitlab

gitlab提交报错

error: unable to read askpass response from ‘C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2021.3\tmp\intellij-git-askpass-local.sh’
bash: line 1: /dev/tty: No such device or address

解决方案:需要修改git的remote用户名密码

image-20231109165015611

image-20231109165055082

再次提交

image-20231109165125130

gitlab

image-20231109165213762

jenkins构建

创建新项目(maven)

image-20231109165335323

配置(Configure)

image-20231109165633649

image-20231109165651422

image-20231109165709762

总览如下图:

image-20231109165534915

保存

image-20231109165800718

立即构建

image-20231109165851063

image-20231109165905370

点击#1进入构建详情

image-20231109165932608

image-20231109170049042

image-20231109170347439

jenkins的自动构建

使用gitlab hook插件完成gitlab上有提交jenkins的自动构建过程。

在项目配置中配置构建触发器

image-20231110094352596

取消认证

image-20231110102342883

image-20231110102304395

登录gitlab
管理员登录 gitlaba

点击Admin,设置Network 的Outbound requests设置的选中。

image-20231110100702357

image-20231110100630725

退出管理员

image-20231110100802990
当前用登录

普通用户登录(我的是test),点击项目->settings->Webhooks

image-20231110095529082

image-20231110095853120

image-20231110101225404

image-20231110102506970

image-20231110102523109

测试自动构建
push项目到gitlab

image-20231110102923061

查看jenkins是否自动构建

image-20231110102903373

image-20231110103016106

image-20231110111820189


jenkins发布

安装publisher ssh over插件

image-20231108171722390

配置ssh
image-20231110084123134

image-20231110084439553

image-20231110084517077

image-20231110084938792

image-20231208174642472

修改springboot项目的输出路径

由于项目采用多级目录,我们将打包后的结果统一输出到某个目录,暂时定为out。在项目打包插件中添加打包位置。

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><outputDirectory>../../out</outputDirectory></configuration></plugin></plugins>
</build>
发布项目配置

点击项目设置post steps

image-20231110171830032

image-20231209173245868

测试发布

image-20231110172021959

image-20231209173428986

linux服务器

image-20231209173529186

image-20231110172039998

[root@localhost projects]# nohup java -jar wnhz-bms-0.0.1-SNAPSHOT.jar &
[1] 67855
[root@localhost projects]# nohup: 忽略输入并把输出追加到"nohup.out"[root@localhost projects]# ls
nohup.out  wnhz-bms-0.0.1-SNAPSHOT.jar[root@localhost projects]cat nohup.out/^\    /^\{  O}  {  O}\ /    \ ///     //       _------_//     //     ./~        ~-_/ ~----~/     /              \/         :   ./       _---_    ~-
|  \________) :       /~     ~\   |
|        /    |      |  :~~\  |   |
|       |     |      |  \___-~    |
|        \ __/`^\______\.        ./\                     ~-______-~\..|                                ~-_
/_________蜗牛杭州Jenkins测试__________~~
2023-11-10 17:15:43.926  INFO 28907 --- [           main] com.wnhz.bms.BmsApp                      : Starting BmsApp v0.0.1-SNAPSHOT using Java 1.8.0_341 on localhost.localdomain with PID 28907 (/usr/local/projects/wnhz-bms-0.0.1-SNAPSHOT.jar started by root in /usr/local/projects)
2023-11-10 17:15:44.062  INFO 28907 --- [           main] com.wnhz.bms.BmsApp                      : The following 1 profile is active: "dev"
2023-11-10 17:15:47.587  INFO 28907 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 9090 (http)
2023-11-10 17:15:47.610  INFO 28907 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2023-11-10 17:15:47.611  INFO 28907 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.68]
2023-11-10 17:15:47.860  INFO 28907 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2023-11-10 17:15:47.861  INFO 28907 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3472 ms
2023-11-10 17:15:49.326  INFO 28907 --- [           main] pertySourcedRequestMappingHandlerMapping : Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2ControllerWebMvc#getDocumentation(String, HttpServletRequest)]
2023-11-10 17:15:49.475  INFO 28907 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 9090 (http) with context path ''
2023-11-10 17:15:49.477  INFO 28907 --- [           main] d.s.w.p.DocumentationPluginsBootstrapper : Documentation plugins bootstrapped
2023-11-10 17:15:49.486  INFO 28907 --- [           main] d.s.w.p.DocumentationPluginsBootstrapper : Found 1 custom documentation plugin(s)
2023-11-10 17:15:49.558  INFO 28907 --- [           main] s.d.s.w.s.ApiListingReferenceScanner     : Scanning for api listing references
2023-11-10 17:15:49.887  INFO 28907 --- [           main] com.wnhz.bms.BmsApp                      : Started BmsApp in 8.873 seconds (JVM running for 10.226)
2023-11-10 17:16:19.245  INFO 28907 --- [nio-9090-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2023-11-10 17:16:19.245  INFO 28907 --- [nio-9090-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2023-11-10 17:16:19.247  INFO 28907 --- [nio-9090-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms

swagger测试

image-20231110173326253

image-20231110172154445

关闭应用

image-20231110173416030

[root@localhost projects]# ps aux|grep 67855
root      67855  8.8  3.9 5856660 318416 pts/4  Sl   17:31   0:18 java -jar wnhz-bms-0.0.1-SNAPSHOT.jar
root      76563  0.0  0.0 112824   988 pts/4    S+   17:34   0:00 grep --color=auto 67855
[root@localhost projects]# kill -9 67855
[root@localhost projects]# ps aux|grep 67855
root      79602  0.0  0.0 112824   984 pts/4    S+   17:35   0:00 grep --color=auto 67855
[1]+  已杀死               nohup java -jar wnhz-bms-0.0.1-SNAPSHOT.jar

g-TG9kGPpx-1713174351305)]

关闭应用

[外链图片转存中…(img-19K8gVWG-1713174351306)]

[root@localhost projects]# ps aux|grep 67855
root      67855  8.8  3.9 5856660 318416 pts/4  Sl   17:31   0:18 java -jar wnhz-bms-0.0.1-SNAPSHOT.jar
root      76563  0.0  0.0 112824   988 pts/4    S+   17:34   0:00 grep --color=auto 67855
[root@localhost projects]# kill -9 67855
[root@localhost projects]# ps aux|grep 67855
root      79602  0.0  0.0 112824   984 pts/4    S+   17:35   0:00 grep --color=auto 67855
[1]+  已杀死               nohup java -jar wnhz-bms-0.0.1-SNAPSHOT.jar

相关文章:

jenkins(docker)安装及应用

jenkins Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具&#xff0c;起源于Hudson&#xff08;Hudson是商用的&#xff09;&#xff0c;主要用于持续、自动的构建/测试软件项目、监控外部任务的运行&#xff08;这个比较抽象&#xff0c;暂且写上&#xff0c;不做解…...

uni-app中,页面跳转前,进行拦截处理的方法

个人需求阐述&#xff1a; 当用户在页面A中&#xff0c;填写了内容之后&#xff0c;没有点击“保存/确定”&#xff0c;直接通过点击返回按钮或者手机的物理返回键直接返回时&#xff0c;需要给出一个二次确认的弹层&#xff0c;当用户点击确定离开之后&#xff0c;跳转到页面B…...

Jmeter参数化的 4 种方式用法总结

参数化就是用变量代替数据的过程&#xff0c;总结参数化的4种方式&#xff1a; 1、用户自定义变量 用户自定义变更有两种方法&#xff1a; &#xff08;1&#xff09;在测试计划面板中的用户定义的变量设置 说明&#xff1a;在此用户定义的变量对所有测试计划都会生效 &…...

华为OD机试 - 连续天数的最高利润额(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…...

C语言——内存函数的实现和模拟实现

1. memcpy 使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 这个函数在遇到 \0 的时候并不会停下来。 如果source和destination有任何的重叠&am…...

如何优化邮箱Webhook API发送邮件的性能?

邮箱Webhook API发送邮件的流程&#xff1f;怎么用邮箱API发信&#xff1f; 高效、稳定的邮箱Webhook API发送邮件功能对于企业的日常运营至关重要。随着业务量的增长&#xff0c;如何优化邮箱Webhook API发送邮件的性能。AokSend将从多个方面探讨如何提升的效率。 邮箱Webho…...

OceanBase V4.X中常用的SQL(一)

整理了一些在OceanBase使用过程中常用的SQL语句&#xff0c;这些语句均适用于4.x版本&#xff0c;并将持续进行更新。后续还将分享一些V4.x版本常用的操作指南&#xff0c;以便更好地帮助大家使用OceanBase数据库。 集群信息 版本查看 show variables like version_comment; …...

代码随想录算法训练营第五十天|123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV

123.买卖股票的最佳时机III 这道题一下子就难度上来了&#xff0c;关键在于至多买卖两次&#xff0c;这意味着可以买卖一次&#xff0c;可以买卖两次&#xff0c;也可以不买卖。 视频讲解&#xff1a;https://www.bilibili.com/video/BV1WG411K7AR https://programmercarl.com…...

Composer安装与配置:简化PHP依赖管理的利器(包括加速镜像设置)

在现代的PHP开发中&#xff0c;我们经常会使用许多第三方库和工具来构建强大的应用程序。然而&#xff0c;手动管理这些依赖项可能会变得复杂和耗时。为了解决这个问题&#xff0c;Composer应运而生。Composer是一个PHP的依赖管理工具&#xff0c;它可以帮助我们轻松地安装、更…...

灯塔:抽象类和接口笔记

什么是构造方法 构造方法是一种特殊的方法&#xff0c;它是一个与类同名且没有返回值类型的方法。 构造方法的功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法&#xff0c;且构造方法和其他方法一样也可以重载 继承抽象类需要实现所有的抽象方法吗 继…...

mybatis 入门

MyBatis是一款持久层框架&#xff0c;免除了几乎所有的JDBC代码、参数及获取结果集工作。可以通过简单的XML或注解来配置和映射原始类型、接口和Java POJO为数据库中的记录。 1 无框架下的JDBC操作 1&#xff09;加载驱动&#xff1a;Class.forName(“com.mysql.cj.jdbc.Driv…...

Spring-AI-上下文记忆

引入依赖 pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…...

内存函数memcpy、mommove、memset、memcmp

目录 1、memcpy函数 memcpy函数的模拟实现 2、memmove函数 memmove函数的模拟实现 3、memset函数 4、memcmp函数 1、memcpy函数 描述&#xff1a; C 库函数 void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 复制 n 个字节到存储区 str1。 声明&…...

symfony框架介绍

Symfony是一个功能强大的PHP框架,它提供了丰富的组件和工具来简化Web开发过程。以下是一些关于Symfony的主要特点: 可重用性: Symfony提供了一系列可重用的PHP组件,这些组件可以用于任何PHP应用程序中。灵活性: Symfony允许开发者根据项目需求灵活选择使用哪些组件,而不是强…...

【计算机毕业设计】游戏售卖网站——后附源码

&#x1f389;**欢迎来到琛哥的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 琛哥&#xff0c;一名来自世界500强的资深程序猿&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 琛哥在深度学习任务中展现出卓越的能力&a…...

LabVIEW电信号傅里叶分解合成实验

LabVIEW电信号傅里叶分解合成实验 电信号的分析与处理在科研和工业领域中起着越来越重要的作用。系统以LabVIEW软件为基础&#xff0c;开发了一个集电信号的傅里叶分解、合成、频率响应及频谱分析功能于一体的虚拟仿真实验系统。系统不仅能够模拟实际电路实验箱的全部功能&…...

Docker 学习笔记(六):挑战容器数据卷技术一文通,实战多个 MySQL 数据同步,能懂会用,初学必备

一、前言 记录时间 [2024-4-11] 系列文章简摘&#xff1a; Docker学习笔记&#xff08;二&#xff09;&#xff1a;在Linux中部署Docker&#xff08;Centos7下安装docker、环境配置&#xff0c;以及镜像简单使用&#xff09; Docker 学习笔记&#xff08;三&#xff09;&#x…...

csdn怎么变得这么恶心,自动把一些好的文章分享改成了vip可见

刚刚发现以前发的一些文章未经过我同意&#xff0c;被csdn自动改成了VIP可见&#xff0c;这也太恶心了&#xff0c;第一你没分钱给我&#xff0c;第二我记录下一些问题也不是为了赚钱&#xff0c;而是为了提升自己和帮助别人&#xff0c;这样搞是想逼更多人走是吗&#xff1f;...

自然语言处理NLP:文本预处理Text Pre-Processing

大家好&#xff0c;自然语言处理(NLP)是计算机科学领域与人工智能领域中的一个重要方向&#xff0c;其研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。本文将介绍文本预处理的本质、原理、应用等内容&#xff0c;助力自然语言处理和模型的生成使用。 1.文本…...

家庭网络防御系统搭建-虚拟机安装siem/securityonion网络连接问题汇总

由于我是在虚拟机中安装的security onion&#xff0c;在此过程中&#xff0c;遇到很多的网络访问不通的问题&#xff0c;通过该文章把网络连接问题做一下梳理。如果直接把securityonion 安装在物理机上&#xff0c;网络问题则会少很多。 NAT无法访问虚拟机 security onion虚拟…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...