Jenkins详细教程(下载安装、构建部署到Linux)

news2024/11/19 20:22:01

目录

  • 第一章、快速了解Jenkins
    • 1.1)Jenkins中一些概念介绍
    • 1.2)Jenkins和maven用途上的区别
    • 1.3)为什么使用Jenkins
  • 第二章、Winodws下载安装Jenkins
    • 2.1)安装之前的准备
    • 2.2)Windows中Jenkins下载安装教程
    • 2.3)Jenkins修改密码
    • 2.4)配置Linux上的SSH服务器
  • 第三章、Jenkins配置
    • 3.1)Plugins插件管理:
      • 3.1.1)汉化插件
      • 3.1.2)Maven插件
      • 3.1.3)重启Jenkins:Restart Safely插件
      • 3.1.4)如果重启Jenkins失败:修改tomcat端口
      • 3.1.5)文件传输:Publish Over SSH
      • 3.1.6)gitee插件
      • 3.1.7)清理插件:workspace cleanup
    • 3.2)system系统配置:
      • 3.2.1)系统配置:汉化配置
      • 3.2.2)系统配置:访问地址(Jenkins Location)
      • 3.2.3)系统配置:Gitee配置
      • 3.2.4)系统配置:SSH配置
    • 3.3)Security全局安全配置
    • 3.4)Tools全局工具配置
  • 第四章、Jenkins关联Gitee:构建,编译
    • 4.1)Jenkins关联Gitee项目
      • 4.1.1)上传本地项目到gitee中
      • 4.1.2)新增Jenkins任务
      • 4.1.3)Jenkins关联gitee
      • 4.1.4)踩坑记录
    • 4.2)构建和编译项目:build
      • 4.2.1)配置build
      • 4.2.2)立即构建:build now
      • 4.2.3)查看是否构建成功:jar文件所在地
      • 4.2.4)踩坑记录
  • 第五章、构建环境和构建后操作:部署
    • 5.1)配置构建环境
    • 5.2)Post Steps(后置步骤)
      • 5.2.1)配置构建后操作:发送jar文件到Linux服务器
      • 5.2.2)查看控制台输出的日志
      • 5.2.3)踩坑记录
      • 5.2.4)查看是否部署成功
  • 第六章、番外
    • 6.1)Jenkins启动,停止和重启
    • 5.3)远程触发器(只是介绍,这里不配置)

友情提醒:

先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。有用记得关注

第一章、快速了解Jenkins

1.1)Jenkins中一些概念介绍

① Jenkins是什么?
Jenkins是一个强大的持续集成(CI)工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。它通常与版本管理工具(如Git、Maven、Ant、Gradle)结合使用,也可以与构建工具结合使用。可在Tomcat等流行的servlet容器中运行,也可独立运行。

②组件概念:在Java中,组件主要通过类、接口和包来实现。这些组件是用于构建复杂的应用程序和软件系统的基本模块,能够提高代码的可重用性,降低开发的复杂度。

③集成的概念:Jenkins的集成是指将不同的软件组件、模块或服务通过Jenkins这个持续集成工具集中在一起,产生联系,使不同的软件组件或模块能够相互协作,从而构成一个完整的软件系统。

④CI:持续集成的概念,实现自动化构建、自动化测试、发布部署等功能的过程。核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。持续集成并不能消除Bug,而是让它们非常容易发现和改正。

⑤CD:(Continuous Delivery持续交付/Continuous Deployment持续部署)
持续交付指的是频繁地将软件的新版本交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。

持续部署是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。持续部署的前提是能自动化完成测试、构建、部署等步骤。

1.2)Jenkins和maven用途上的区别

Maven作用是什么
① Maven 是工具,专注服务于 Java 平台的项目自动化构建和依赖管理。
②可以整合多个项目之间的引用关系,我们可以根据业务和分层需要任意拆分一个项目。
③提供规范的管理各个常用jar包及其各个版本,并且可以自动下载和引入项目中。
④可以根据指定版本自动解决jar包版本兼容问题。
⑤可以把jar包所依赖的其它jar包自动下载并引入项目。

Jenkins作用是什么
①自动化构建:Jenkins可以根据代码仓库的变化自动触发构建过程,包括编译、打包和生成构建报告等。
②自动化测试:Jenkins可以自动运行各种测试工具和测试框架,如JUnit、Selenium等
③自动化部署:Jenkins可以自动化部署软件到各个环境,如开发环境、测试环境和生产环境等。
④持续集成/持续部署:Jenkins可以将不同的开发分支自动合并,并进行编译、测试和部署等流程,以确保代码的集成和交付的质量和稳定性。

1.3)为什么使用Jenkins

曾经的打包部署:
提交最新代码到Git
拉取最新代码并打包
将程序文件上传到服务器
确认程序是否正在运行
关闭运行的程序启动新的jar包
查看是否启动新程序成功
确认成功后测试人员进行测试。

使用Jenkins后:
将代码提交到git
构建项目实现自动化打包部署
构建成功
测试人员进行测试

第二章、Winodws下载安装Jenkins

2.1)安装之前的准备

①windows安装JDK。 安装教程:jdk1.8安装教程及环境变量配置(含jdk8,11,13安装文件)
②git下载和安装 教程:代码托管/版本控制工具:Git的安装和使用
③maven下载和安装 教程:Idea整合Maven安装及配置教程(图文详解)
④windowsTomcat服务器 安装:Tomcat服务器下载安装及配置教程
⑤如果使用Linux系统请看这个: Linux操作系统学习,Linux基础命令大全
⑥如果使用docker安装Jenkins看这篇: Docker部署Jenkins

2.2)Windows中Jenkins下载安装教程

①官网下载安装包:
官网链接:点击跳转:https://www.jenkins.io/

在这里插入图片描述

跳转到这个页面,点这里下载 .war安装包。Linux和Windows都是这个安装包

在这里插入图片描述

②把下载好的jenkins.war 放文件夹下。在这个目录使用Java -jar jenkins.war命令启动
在这里插入图片描述

③安装成功显示如下界面,

在这里插入图片描述

④浏览器输入:localhost:8080/ 登录Jenkins,C:\Users\86130.jenkins\secrets\initialAdminPassword文件里找到密码。密码复制进来,点击继续
在这里插入图片描述

2.3)Jenkins修改密码

①选择默认安装插件
在这里插入图片描述
②创建用户,点击使用admin账号继续
在这里插入图片描述
③保存后点击开始使用Jenkins
在这里插入图片描述
④修改密码:admin–>设置–>下拉找到Password–>修改后点击保存
在这里插入图片描述
在这里插入图片描述

2.4)配置Linux上的SSH服务器

SSH服务器可以允许用户远程连接到系统,进行管理、维护和文件传输,同时提供了加密的通信,保护系统免受未经授权的访问。

①检测Linux系统上是否已经安装了SSH服务
如果安装,你将会看到软件包的版本信息。如果未安装,将不会看到任何输出。
使用命令

//Debian/Ubuntu系统
dpkg -l | grep openssh-server
//CentOS/Fedora系统
rpm -qa | grep openssh-server

②未安装的话使用以下命令安装:
注意:Linux CentOS 7 下服务不再通过 service 操作,而是通过 systemctl 操作

systemctl start sshd.service

③启动ssh服务器

service sshd start

④设置服务自启动

systemctl enable sshd.service

⑤查看服务是否启动

systemctl status sshd

如果启动了,可以看到如下图的服务信息:
在这里插入图片描述

第三章、Jenkins配置

吐槽一下这个汉化,一塌糊涂。Jenkins这不同版本的页面也是乱七八糟。

3.1)Plugins插件管理:

3.1.1)汉化插件

系统设置主页(Dashboard)最左侧—》点击Mange Jenkins(系统管理)
汉化插件:下滑找到 Plugins(插件管理),在plugins installed(已安装插件)选项
在这里插入图片描述
查找插件 Locale plugin 和 Localization: Chinese查看是否安装

在这里插入图片描述

3.1.2)Maven插件

在Jenkins的Manage Jenkins页面,选择Manage Plugins(插件管理)。

在可选插件(Available),输入关键词"Maven Integration Plugin"
在这里插入图片描述

选择插件并点击Install Now进行安装。
在这里插入图片描述

安装完成后,记得重启Jenkins服务让新插件生效。
在这里插入图片描述

3.1.3)重启Jenkins:Restart Safely插件

在manage Jenkins(系统管理)—》Install as Windows service中安装Windows服务。
在这里插入图片描述
在 Jenkins 插件管理器中搜索 “Safe Restart” 插件并安装。
在这里插入图片描述

然后在 manage Jenkins(系统管理)最下面。点击 “Restart Safely” 选项进行重启。
在这里插入图片描述

3.1.4)如果重启Jenkins失败:修改tomcat端口

ps:如果本地还启动了 Tomcat,它默认的端口号也是8080,会导致jenkins重启失败,需要修改tomcat端口

打开Tomcat安装目录的conf路径下配置文件 server.xml
找到:默认的HTTP连接器配置,其中port="8080"表示Tomcat的HTTP访问端口。

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

把8080改成8888

<Connector port="8888" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

3.1.5)文件传输:Publish Over SSH

在“可选插件”选项卡中,搜索Publish Over SSH插件
在这里插入图片描述

3.1.6)gitee插件

在“可选插件”选项卡中,搜索Gitee插件
在这里插入图片描述

3.1.7)清理插件:workspace cleanup

在“可选插件”选项卡中,搜索workspace cleanup插件。查看是否安装
在这里插入图片描述

3.2)system系统配置:

3.2.1)系统配置:汉化配置

汉化配置:回到Mange Jenkins选项system(系统配置),下滑找到Locale,输入zh_CN,点击保存
在这里插入图片描述
一般来说汉化能成功,汉化失败会变成半汉化,半英文,不影响使用。ps:我找了半天也没找到解决办法。

3.2.2)系统配置:访问地址(Jenkins Location)

访问地址配置:回到Mange Jenkins选项—》system(系统配置)—》Jenkins Location
指定安装Jenkins的HTTP地址,例如http://yourhost.yourdomain/jenkins/. 这个值用来在邮件中生产Jenkins链接.
在这里插入图片描述

3.2.3)系统配置:Gitee配置

Gitee配置:之前已经安装好了Gitee插件。在Mange Jenkins选项—》system(系统配置)—》下滑找到Gitee配置
点击链接登录自己Gitee账号生成令牌填入栏中:https://gitee.com/profile/personal_access_tokens
在这里插入图片描述
生成的令牌复制到本地在这里插入图片描述
链接名随便取名自定义的,域名是http://gitee.com

在这里插入图片描述
再点击添加,类型选择Gitee的API令牌,将刚刚生成的令牌复制过来,ID不用写,描述我写的是无语了
在这里插入图片描述
点开【高级】,勾选忽略SSL检查
在这里插入图片描述
选择令牌,测试是否成功

在这里插入图片描述

3.2.4)系统配置:SSH配置

Manage Jenkins—》 Configure System—》下滑找到Publish over SSH –> 新增 –> 配置下面的信息
点击高级,设置Linux服务器登录密码。
在这里插入图片描述

启动Linux服务器,点击测试连接,看看是否返回成功(success)
在这里插入图片描述

3.3)Security全局安全配置

①主页(Dashboard)—》系统管理(manage Jenkins)—》Security(全局安全配置)里配置:允许注册和授权(根据自己的需求配置)
在这里插入图片描述

3.4)Tools全局工具配置

②主页—》系统管理—》Tools(全局工具配置)—》第一个Maven配置(根据自己系统的maven路径配置)
在这里插入图片描述

主页—》系统管理(管理Jenkins)—》Tools(全局工具配置)—》JDK设置(根据自己系统的JDK路径配置)

在这里插入图片描述
主页—》系统管理(管理Jenkins)—》Tools(全局工具配置)—》git设置(根据自己系统的git路径配置)
在这里插入图片描述
主页—》系统管理—》Tools(全局工具配置)—》第二个maven配置(根据自己系统的maven路径配置)
在这里插入图片描述
ps:其他的工具配置如docker,NodeJS,Ant这里就不一一列举了。

第四章、Jenkins关联Gitee:构建,编译

4.1)Jenkins关联Gitee项目

4.1.1)上传本地项目到gitee中

①在IDEA中创建SpringBoot项目并且上传到github

idea快速搭建Springboot项目

代码托管/版本控制工具:Git的安装和使用

4.1.2)新增Jenkins任务

①主页—》新增任务
在这里插入图片描述

②输入项目名称,之前安装了maven插件,现在可以选择构建maven项目,确定
在这里插入图片描述

②在General中写一下项目描述,不写也行
在这里插入图片描述

4.1.3)Jenkins关联gitee

②登录gitee,把gitee的仓库HTTP链接复制到本地
在这里插入图片描述

③选择源码管理—》选择git—》将http地址复制到repositoryURL栏后。点击ADD—》Jenkins
在这里插入图片描述

④点击add后—》点击Jenkins—》选择之前设置好的API令牌—》记得保存
在这里插入图片描述

4.1.4)踩坑记录

解决报错:Failed to connect to repository : Error performing git command: F:\Git\Git ls-remote -h https://github.com/baomingshu/money.git HEAD:
这是Tools(工具配置)那边git的安装路径写错了,在Tools那边修改一下安装路径为自己电脑的git路径:

F:\Git\Git\bin\git.exe

解决报错:SSL certificate problem: unable to get local issuer certificate
这是因为服务器上的SSL证书未经过第三方机构认证,git就会报错。原因是因为未知的没有签署过的证书意味着可能存在很大的风险。解决办法就是通过下面的命令将git中的sslverify关掉:在git bash里输入命令

git config --global http.sslverify false

4.2)构建和编译项目:build

4.2.1)配置build

找到项目,点击配置
在这里插入图片描述
这里我们配置build中的Root Pom,以及代码编译和打包命令:

clean install -DskipTests -Dmaven.repo.local=D:\tools\repository

命令解释:
clean install -DskipTests先clean再install。会执行测试代码编译和打包,但在运行测试时会跳过测试阶段,即不会执行单元测试代码。
-Dmaven.repo.local=D:\tools\repository在本地路径寻找maven仓库,避免每次构建都下载jar包

在这里插入图片描述

4.2.2)立即构建:build now

点击立即构建(build now),等待构建。如果代码没有bug,应该出现一个绿色的勾勾√。
在这里插入图片描述

4.2.3)查看是否构建成功:jar文件所在地

查看本地目录文件:
C:\Users\userName\.jenkins\jobs目录查看是否有jobs
在这里插入图片描述
C:\Users\86130\.jenkins\workspace\二手市场项目自动化构建\target目录下查看是否有jar文件生成
在这里插入图片描述

查看Jenkins服务器
Jenkins服务器上对应项目—》点击项目名

在这里插入图片描述
点击工作空间
在这里插入图片描述
点击模块
在这里插入图片描述
查看最后一次构建结果在这里插入图片描述
点击工作空间,springboot_base-0.0.1-SNAPSHOT.jar文件会存放在target目录下
在这里插入图片描述

4.2.4)踩坑记录

1、再次构建前要把C:\Users\userName.jenkins\workspace的文件手动删除不然会失败。(后面可以设置自动删除)

workspace介绍:工作空间,可以随便删除,删除后再次构建时间可能会比较长,因为要重新获取一些资源
在这里插入图片描述2、gitee上src同级目录需要有pom文件,不然会显示找不到pom.xml

在这里插入图片描述

3、Root Pom栏不要写本地的绝对路径,否则会把构建的jar包存放到这个绝对路径下而不是C:\Users\86130\.jenkins\workspace\二手市场项目自动化构建\target下。
在这里插入图片描述

4、设置Dmaven.repo.local=在本地路径寻找maven仓库,不然构建一次要十几分钟下载jar包。
在这里插入图片描述

5、上传到Gitee项目的路径要对(即second_hand_market路径下的一级目录为src),否则会报如下错误:
在这里插入图片描述

第五章、构建环境和构建后操作:部署

5.1)配置构建环境

这里勾选Delete workspace before build starts以后,就会自动清理workspace了,就不用我们手动清理了。确保在构建前能清理工作空间

在这里插入图片描述
勾选Add timestamps to the Console Output:在控制台最左侧一列添加输出日志的时间。
在这里插入图片描述

5.2)Post Steps(后置步骤)

帮助我们运行一些cmd命令或者shell命令。

例如选择Execute Windows batch command,就是执行cmd命令
在这里插入图片描述

5.2.1)配置构建后操作:发送jar文件到Linux服务器

新增构建后操作,选择Send build artifacts over SSH,之前安装了对应插件所以这里可以选择
在这里插入图片描述
配置服务器名称,填写构建好以后的文件位置(相对路径),去除前缀
在这里插入图片描述
点击高级,勾选Verbose output in console。把ssh插件的日志打印到控制台
在这里插入图片描述

指定Linux服务器的路径,jar包会从Jenkins上传输到这个目录,如果路径不存在,会自动创建目录。
在Exec command栏写上bash命令
在这里插入图片描述

脚本命令的内容贴在这,意思大致为:
查找springboot_base-0.0.1-SNAPSHOT.jar的进程,如果找到了pid就结束进程
给springboot_base-0.0.1-SNAPSHOT.jar权限 777,进入jar包所在目录
启动jar包

#!/bin/bash
echo "Stop Procedure : springboot_base-0.0.1-SNAPSHOT.jar"
#查找springboot_base-0.0.1-SNAPSHOT.jar的进程
pid=`ps -ef |grep java|grep springboot_base-0.0.1-SNAPSHOT.jar| grep -v grep |awk '{print $2}'`
echo 'old Procedure pid:'$pid
#如果找到了pid就结束进程
if [ -n "$pid" ]
then
kill -9 $pid
#退出if
fi
echo 'Start the program : springboot_base-0.0.1-SNAPSHOT.jar' 
#给springboot_base-0.0.1-SNAPSHOT.jar权限  777
chmod 777 /home/bao/springboot_base-0.0.1-SNAPSHOT.jar
echo '-------Starting-------' 
#进入jar包所在目录
cd /home/bao/
#启动jar包
nohup /usr/local/java/jdk1.8.0_77/bin/java -jar springboot_base-0.0.1-SNAPSHOT.jar > a1.log 2>&1 &
echo 'start success'

5.2.2)查看控制台输出的日志

点击最新的构建历史,查看左上角控制台输出,可以看到成功传输到了Linux服务器。
在这里插入图片描述

5.2.3)踩坑记录

第一个坑:报错PWD
jenkins 远程 Remote root is not absolute, getting absolute directory from PWD;
解决
1、source file 路径写错了,导致文件无法通过ssh传到Linux。这里用的是相对工作区的路径,正确的路径应该为jenkins的workspace下路径。

如果需要上传…Jenkins/workspace/TEST/target下的xxx.jar文件,只需要写target/xxx.jar。 这里的TEST为工程名字。
在这里插入图片描述

2、在系统配置——SSH Servers——Remote Directory 根路径配置中要加上 /,否则传输文件会去找/root/home/bao,而不是/home/bao
在这里插入图片描述

第二个坑:报错执行的shell命令错误
报错如下

ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [-1]]
Build step 'Send build artifacts over SSH' changed build result to UNSTABLE

错误:发布时出现异常,异常消息为[exec退出状态不为零。状态[1]]
这个错误通常表示在执行某个命令时出现了问题,可能是命令本身有问题或者执行环境不正确。

问题分析:
ps查询到的进程包含查询进程自身,当管道进行到kill的时候,所有进程一同被杀死,而Jenkins仍然在等待查找进程自身返回exit 0,事实上它永远等不到了,因为进程都没了。
问题解决:在这一行命令

pid=`ps -ef |grep java|grep springboot_base-0.0.1-SNAPSHOT.jar|awk '{print $2}'`

加入| grep -v grep | 命令排除自身进程即可
修改后的命令如下

#!/bin/bash
echo "Stop Procedure : springboot_base-0.0.1-SNAPSHOT.jar"
pid=`ps -ef |grep java|grep springboot_base-0.0.1-SNAPSHOT.jar|awk '{print $2}'`
echo 'old Procedure pid:'$pid
if [ -n "$pid" ]
then
kill -9 $pid
fi
echo 'Start the program : springboot_base-0.0.1-SNAPSHOT.jar'
chmod 777 /home/bao/springboot_base-0.0.1-SNAPSHOT.jar
echo '-------Starting-------'
cd /home/bao/
nohup /usr/local/java/jdk1.8.0_77/bin/java -jar springboot_base-0.0.1-SNAPSHOT.jar > a1.log 2>&1 &
echo 'start success'

第三个坑:tomcat端口占用
Linux中的tomcat启动导致端口被占用了,导致启动jar包失败
使用命令关闭tomcat

./shutdown.sh

再次构建执行就成功启动jar包了。
第四个坑:tomcat端口占用
Jenkins执行bash命令的时候,使用Jenkins系统配置中的jdk。
解决方式:
把bash命令,弄成了sh脚本,放到了Linux服务器/home/bao文件夹上。在Jenkins中只要启动脚本就可以了。
在这里插入图片描述

5.2.4)查看是否部署成功

使用命令,查看jar包是否启动

ps -ef|grep java

如图显示jar包已经部署成功
在这里插入图片描述

第六章、番外

6.1)Jenkins启动,停止和重启

启动Jenkins到Jenkins路径下使用命令:

java -jar jenkins.war

停止Jenkins服务,到Jenkins路径下使用cmd命令:注意这里需要使用管理员身份运行,否则访问时会报发生系统错误5。拒绝访问;

右键开始菜单,选择“window PowerShell(管理员)”,就可以以管理员身份运行cmd。

net stop jenkins

停止了Jenkins服务再启动,到Jenkins路径下使用cmd命令:

net start jenkins

重启Jenkins,在浏览器地址后加上restart

http://localhost:8080/restart

5.3)远程触发器(只是介绍,这里不配置)

①什么是触发器:
Jenkins触发器是一种机制,可以根据不同的条件和事件来触发构建,例如源代码的变更、定时调度、其他项目的构建完成等。

②触发器的种类介绍:
触发远程构建:
通过访问一个特定的URL并带上身份验证令牌来触发构建。这种方式常用于在其他系统中集成Jenkins,并通过链接远程触发项目的构建。
定时构建:按照设定的时间周期进行构建,例如每天、每周或每月的特定时间进行构建。这种方式适用于需要定期执行构建任务的项目。
Webhooks构建:一些SCM(如GitHub和Bitbucket)允许Jenkins作为Webhook的接收者。当源代码库发生变化时,SCM会自动向Jenkins发送一个请求,触发相应的构建。
Post-commit hook构建:当源代码库发生提交时,可以设置一个钩子自动触发Jenkins构建。例如,在Git中,可以在.git/hooks/post-commit中设置一个脚本,当提交发生时,该脚本将自动运行并触发Jenkins构建。

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

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

相关文章

百度行驶证C++离线SDK V1.1 C#接入

百度行驶证C离线SDK V1.1 C#接入 目录 说明 效果 项目 代码 下载 说明 自己根据SDK封装了动态库&#xff0c;然后C#调用。 SDK包结构 效果 项目 代码 using Newtonsoft.Json; using System; using System.Drawing; using System.Runtime.InteropServices; using System…

【Android、 kotlin】kotlin学习笔记

基本语法 fun main(){val a2var b "Hello"println("$ (a - 1} $b Kotlin!")} Variables 只赋值一次用val read-only variables with val 赋值多次用var mutable variables with var Standard output printin() and print() functions String templ…

蓝凌OA单点登录实现方案:以统一身份管理提升效率与安全新举措

蓝凌OA的优势与挑战 在数字化浪潮的推动下&#xff0c;企业对于高效、安全的身份管理需求愈发迫切。蓝凌OA系统&#xff0c;以其出色的流程管理和协同办公能力&#xff0c;已经成为众多企业实现数字化转型的重要工具。然而&#xff0c;随着企业信息化建设的不断深入&#xff0…

2024最新AI创作系统ChatGPT源码+Ai绘画网站源码,GPTs应用、AI换脸、插件系统、GPT文档分析、GPT语音对话一站式解决方案

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持GPT…

微信小程序怎么制作?制作一个微信小程序需要多少钱?

随着移动互联网的快速发展&#xff0c;微信小程序已成为连接用户与服务的重要桥梁。它以其便捷性和易用性&#xff0c;为各类企业和个人提供了一个全新的展示和交易平台。那么&#xff0c;如何制作一个微信小程序&#xff1f;又需要投入多少资金呢&#xff1f;本文将为您提供全…

权限管理系统【BUG】

1.1.简介 忙里偷闲&#xff0c;学点Java知识。越发觉得世界语言千千万&#xff0c;最核心的还是思想&#xff0c;一味死记硬背只会让人觉得很死板不灵活&#xff0c;嗯~要灵活~ 1.2.问题 permission.js:37 [Vue warn]: Error in render: "TypeError: Cannot read prope…

docker部署nacos,单例模式(standalone),使用mysql数据库

文章目录 前言安装创建文件夹"假装"安装一下nacos拷贝文件夹删除“假装”安装的nacos容器生成nacos所需的mysql表获取mysql-schema.sql文件创建一个mysql的schema 重新生成新的nacos容器 制作docker-compose.yaml文件查看网站 前言 此处有本人写得简易版本安装&…

大话设计模式之备忘录模式

备忘录模式是一种行为设计模式&#xff0c;用于在不破坏封装性的前提下捕获对象的内部状态&#xff0c;并在需要时将其恢复到先前的状态。它允许在不暴露对象实现细节的情况下&#xff0c;保存和恢复对象的状态。 以下是备忘录模式的一种常见实现&#xff1a; 备忘录&#xff…

网络基础二——传输层协议UDP与TCP

九、传输层协议 ​ 传输层协议有UDP协议、TCP协议等&#xff1b; ​ 两个远端机器通过使用"源IP"&#xff0c;“源端口号”&#xff0c;“目的IP”&#xff0c;“目的端口号”&#xff0c;"协议号"来标识一次通信&#xff1b; 9.1端口号的划分 ​ 0-10…

Windows不常见问题集

● 解决CACLS 禁止修改计算机名 管理员权限运行cmd&#xff1a;cacls %SystemRoot%\System32\netid.dll /grant administrators:f ● Excel 2010 AltTab組合鍵設置 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer&#xff0c;在該路徑建32字元DWO…

P1102 A-B 数对 (非二分,不开龙永远的痛,用map解决)

可是我真的会伤心 题目链接 思路&#xff1a;1.本来想的是暴力&#xff0c;两层循环模拟每个数。 2.后来想先把每个数字的个数求出来放在数组nums【】中&#xff0c;并把不重复的数字存到数组b&#xff0c;再两层循环b数组应该时间复杂度会好些&#xff0c;如果b数组中的两个数…

如何在 Visual Studio for Mac 中使用 .NET 8 上的 FastReport Avalonia

FastReport Business Graphics .NET&#xff0c;是一款基于fastreport报表开发控件的商业图形库&#xff0c;借助 FastReport 商业图形库&#xff0c;您可以可视化不同的分层数据&#xff0c;构建业务图表以进行进一步分析和决策。利用数据呈现领域专家针对 .NET 7、.NET Core、…

设计模式之命令模式(上)

命令模式 1&#xff09;概述 1.定义 命令模式(Command Pattern) 将一个请求封装为一个对象&#xff0c;可以用不同的请求对客户进行参数化&#xff1b;对请求排队或者记录请求日志&#xff0c;以及支持可撤销的操作。 2.作用 命令模式可以将请求发送者和接收者完全解耦&am…

京东获得JD商品详情 API 接口(jd.item_get)的详细使用说明,包括如何通过该接口获取商品的基本信息,包括名称、品牌、产地、规格参数等

通过调用京东商品详情API接口&#xff0c;开发者可以获取商品的基本信息&#xff0c;如名称、品牌、产地、规格参数等。此外&#xff0c;还可以获取商品价格信息&#xff0c;包括原价、促销价和活动信息等。同时&#xff0c;该接口还支持获取商品的销量、评价、图片、描述等详细…

Flutter iOS上架指南

本文探讨了使用Flutter开发的iOS应用能否上架&#xff0c;以及上架的具体流程。苹果提供了App Store作为正式上架渠道&#xff0c;同时也有TestFlight供开发者进行内测。合规并通过审核后&#xff0c;Flutter应用可以顺利上架。但上架过程可能存在一些挑战&#xff0c;因此可能…

5.3.1 配置交换机 SSH 管理和端口安全

5.3.1 实验1:配置交换机基本安全和 SSH管理 1、实验目的 通过本实验可以掌握&#xff1a; 交换机基本安全配置。SSH 的工作原理和 SSH服务端和客户端的配置。 2、实验拓扑 交换机基本安全和 SSH管理实验拓扑如图所示。 交换机基本安全和 SSH管理实验拓扑 3、实验步骤 &a…

HTML - 请你说一下如何阻止a标签跳转

难度级别:初级及以上 提问概率:55% a标签的默认语义化功能就是超链接,HTML给它的定位就是与外部页面进行交流,不过也可以通过锚点功能,定位到本页面的固定id区域去。但在开发场景中,又避免不了禁用a标签的需求,那么都有哪些方式可以禁用…

大话设计模式之适配器模式

适配器模式是一种结构型设计模式&#xff0c;它允许将一个类的接口转换成客户端所期望的另一个接口。这种模式通常用于使原本由于接口不兼容而不能一起工作的类能够协同工作。 适配器模式涉及以下几个关键角色&#xff1a; 1. 目标接口&#xff08;Target&#xff09;&#x…

5.3.2 实验2:配置交换机端口安全

1、实验目的 通过本实验可以掌握&#xff1a; 交换机管理地址配置及接口配置。查看交换机的MAC地址表。配置静态端口安全、动态端口安全和粘滞端口安全的方法。 2、实验拓扑 配置交换机端口安全的实验拓扑如图所示。 配置交换机端口安全的实验拓扑 3、实验步骤 &#xff…

鸿蒙OS开发实例:【组件化模式】

组件化一直是移动端比较流行的开发方式&#xff0c;有着编译运行快&#xff0c;业务逻辑分明&#xff0c;任务划分清晰等优点&#xff0c;针对Android端的组件化&#xff1b;与Android端的组件化相比&#xff0c;HarmonyOS的组件化可以说实现起来就颇费一番周折&#xff0c;因为…