jenkin部署spring boot项目【从0到1】

写在前面,遇到的很多错误

本来想用docker启动Jenkins的,也这样做了,但是遇到了一个非常严重的问题,就是mvn命令在docker里面不生效,然后就修改文件,但是发现vi不存在,好的。接着用yum安装vi工具,发现yum不存在,我真服了,我搞个docker还得自己去下载yum再上传到docker,这么麻烦,我用它干啥

好的,接下来我们就用最简单的java -jar来启动jenkins.war,本来找了个兼容8、11、17的版本,结果等安装好发现一堆漏洞,你敢在生产环境用么,慌的一批,好,换版本。
在这里插入图片描述

再说一下为啥网上的页面大部分都不一样,这个就是因为jenkins是前后端一体的项目,而且有了漏洞马上修复,页面也在不断优化,所以就导致不同时间的不同版本的页面是不一样的,如果不按照博客的版本其实很难安装成功

而且Jenkins启动需要Java环境,并且在2022年11月已经弃用了Java8,使用Java8的jenkins漏洞也比较多,看上图,所以咱们用最新的jenkins以及Java17来操作

假设有条分割线


Linux 系统的管理员必须在安装 Jenkins LTS 2.387.2.之前在其 Linux 服务器上安装新的存储库签名密钥。

Red Hat/CentOS LTS 版本
$ sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

rpm --import

yum install fontconfig java-11-openjdk
yum install jenkins

硬件最低要求:

  • 256 MB 内存,但建议超过 2 GB
  • 1 GB 驱动器空间(但如果运行,建议至少 10 GB 作为 Jenkins 和 Docker 容器)

小型团队的推荐硬件配置:

  • 4 GB+ 内存
  • 50 GB+ 驱动器空间

jenkins版本和Java版本的对应关系,官网地址https://get.jenkins.io/war-stable/

jenkins版本Java版本
2.361.1开始Java 11, or Java 17
2.346.1开始Java 8, Java 11, or Java 17
2.60.1开始Java 8
1.625.1 开始Java 7

docker的文件系统被称之为镜像

一 准备工作

最好是三台服务器,分别用来放gitlab、jenkins、部署项目
我只有一台阿里云,所以就把Jenkins和部署项目放一起了

或者使用VMware来充当服务器也行

1 新建springboot项目

1.1 打开idea,File–New–Project

在这里插入图片描述

自定义项目名字和Group,这里用java8的maven项目

在这里插入图片描述
1.2 boot版本别太高,3.0以上使用Java17的,这里选择2.7.10,选一个spring web依赖,部署到服务器要验证能不能调通接口
在这里插入图片描述
然后等一会就好了

1.3 写这样的一个代码,没有其它了
在这里插入图片描述

package cn.fox.mydemo.controller;import org.springframework.web.bind.annotation.*;@RestController
public class MyController {@RequestMapping("/getStr")public String getStr(){String str = "恭喜你,调用成功!";System.out.println(str);return str;}
}

yml文件,这里改一个端口号,因为jenkins是8080,避免冲突改为8081

server:port: 8081servlet:context-path: /@artifactId@/encoding:charset: UTF-8

2 将spring boot项目放到gitee上(一般情况公司代码在gitlab上托管的)

2.1 在gitee上注册账号,新建仓库
在这里插入图片描述
2.2 初始化redme文件
在这里插入图片描述
2.3 复制项目地址
在这里插入图片描述
拉取gitee项目需要用户名(就是个人主页的红框的名字,没有@符号)密码(就是登录gitee的密码)【这里尽量不要克隆,直接把本地项目推送到gitee就行。克隆下来在把项目复制进去再提交也行】

在这里插入图片描述

2.4 在本地电脑上打开git bash here窗口,将项目推送到gitee仓库

  • 初始化gitgit init
  • 关联远程仓库 git remote add origin 你的用户名gitee项目地址
  • 拉取远程仓库代码git pull origin master
  • 将spring boot项目添加git版本控制git add .
  • 提交到本地git仓库git commit -m "初始化"
  • 推送到远程仓库giteegit push origin master

在这里插入图片描述

在这里插入图片描述

二 下载并安装jdk17、maven、git和Jenkins

1 配置jdk

Linux一般会自带jdk
输入rpm -qa | grep java 搜索jdk的安装包
输入rpm -e --nodeps + 包名 来删除包

java 17页面
https://www.oracle.com/cn/java/technologies/downloads/#java17
在这里插入图片描述

下载、解压、移动目录、配置全局变量


wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gztar -zxvf jdk-17_linux-x64_bin.tar.gzmv jdk-17.0.7/ /usr/local/jdkvim /etc/profile加入下面几行,按esc,再按:wq保存并退出# java环境jdk路径
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin刷新配置
source /etc/profile查看Java版本
java -version

在这里插入图片描述

2 配置maven【打包用】

# 建立仓库位置的文件夹,-p确保目录名称存在,不存在的就建一个。
mkdir -p /mnt/repository# 去本地目录
cd /usr/local/# 下载二进制Linu的maven文件
wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
# 解压 -C<目的目录>或--directory=<目的目录> 切换到指定的目录
tar -zxvf apache-maven-3.5.4-bin.tar.gz # 改个文件名字
mv apache-maven-3.5.4 /usr/local/maven# 改settings文件,这里是全路径,cd到conf目录再vim也行
vim /usr/local/maven/conf/settings.xml
  • 然后按/斜杠来查找关键字
  • 输入/localRepository再点击n来实现查找下一个关键字
  • i进入编辑状态,复制粘贴下面的两段配置
  • 最后按esc键退出编辑,按:wq保存

实在不会看一下这个Linux改文件内容的基础教程https://www.runoob.com/linux/linux-vim.html

本地仓库位置和使用阿里云镜像


<localRepository>/mnt/repository</localRepository><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>
</mirror>

如图所示

在这里插入图片描述

在这里插入图片描述

3 安装git【拉取代码用】

git官网不支持centOS直接安装git,有两种办法

简单的办法就是直接安装,然后等一会输入y,最后查看版本【版本最高1.8】

yum install gitgit --version

复杂的从源码编译安装【可以安装最新版,以及自定义目录】
https://mirrors.edge.kernel.org/pub/software/scm/git/git-manpages-2.37.0.tar.gz

4 安装jenkins

所有版本页面
https://get.jenkins.io/war-stable/
在这里插入图片描述

在这里插入图片描述

创建文件夹,进入文件夹,下载Jenkins.war文件

cd /
mkdir jenkins
cd jenkinswget https://get.jenkins.io/war-stable/2.401.1/jenkins.war

在这里插入图片描述

启动jar包,默认8080

nohup java -jar /jenkins/jenkins.war >/jenkins/jenkins.log 2>&1 &

也可以启动的时候指定端口号

nohup java -jar /jenkins/jenkins.war --httpPort=9999 >/jenkins/jenkins.log 2>&1 &

如果是java8会出现这个错误

nohup: ignoring input
Running with Java 8 from /usr/local/jdk/jre, which is older than the minimum required version (Java 11).
Supported Java versions are: [11, 17]
See https://jenkins.io/redirect/java-support/ for more information.

-----------------------分割线--------------------------------

本来想下载这个版本,但是安装上后发现一堆漏洞,故放弃此版本
下载2.346.3,这个版本是Java8、11、17都兼容的

wget https://get.jenkins.io/war-stable/2.346.3/jenkins.war

然后出现这个错误,大致意思就是https的证书失效,不能用wget下载

--2023-06-05 11:11:30--  https://get.jenkins.io/war-stable/2.346.3/jenkins.war
Resolving get.jenkins.io (get.jenkins.io)... 52.167.253.43
Connecting to get.jenkins.io (get.jenkins.io)|52.167.253.43|:443... connected.
ERROR: cannot verify get.jenkins.io's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:Issued certificate has expired.
To connect to get.jenkins.io insecurely, use `--no-check-certificate'.

设置运行下载失效证书的文件

sudo yum install -y ca-certificates

再次下载即可,或则windows下载完上传到linux也行

三 访问并配置jenkins

3.1 浏览器输入http://localhost:8080出现如图所示

在这里插入图片描述

3.2 去服务器找密钥来解锁 Jenkins

cat 页面上的红色路径,密钥的位置可能和大家的不一样

# 查看密钥
cat /var/jenkins_home/secrets/initialAdminPassword

3.3 选择安装推荐的插件

在这里插入图片描述
在这里插入图片描述
等一会等安装完需要创建用户,也可以直接用admin

在这里插入图片描述
配置实例,默认的不用改,点击保存并完成

在这里插入图片描述
点击开始使用
在这里插入图片描述

然后就进入了jenkins页面

在这里插入图片描述

3.4 重启docker让配置生效

# 查看容器信息
docker ps -a
# 重启容器
# docker restart <容器 ID>
docker restart 5adc6d39e47a

在这里插入图片描述

四 安装插件

点击 系统管理–插件管理

在这里插入图片描述
4.1 安装gitee插件,拉取gitee上面的代码
在这里插入图片描述
在这里插入图片描述
4.2. 安装maven,打包jar包用
在这里插入图片描述

4.3. 安装ssh,将打好的jar包传输到测试、生产服务器
在这里插入图片描述
在这里插入图片描述
安装完成后选择重启,来刷新插件

4.4 jenkins页面配置环境变量

点击全局工具配置
在这里插入图片描述

3.1 配置maven
/usr/local/maven/conf/setting.xml

在这里插入图片描述

3.2 配置jdk

jenkins内部已经有jdk了,就不用单独在主机中安装并添加docker映射了

/usr/local/jdk

在这里插入图片描述

在这里插入图片描述

3.3 配置git

jenkins内部也有git,就按默认的来
yum install git
在这里插入图片描述

3.4 配置gitee凭证,拉取代码用

到这个地址上创建gitee令牌
https://gitee.com/profile/personal_access_tokens
在这里插入图片描述
输入描述,勾选projects、pull_requests点击提交
在这里插入图片描述
输入密码验证
在这里插入图片描述
将令牌保存下来
在这里插入图片描述

点击jenkins的系统配置
在这里插入图片描述
找到gitee,先添加令牌,选择Gitee API 令牌,粘贴上面的令牌,点击添加然后下拉框选择刚才创建的令牌
在这里插入图片描述
添加项目地址,和令牌(此文档的jenkins版本不允许直接写gitee的用户名和密码)

在这里插入图片描述

3.5 配置ssh凭证,把打好的包放到测试或生产服务器用
3.5.1 服务器用root用户创建一个子用户

Linux创建用户和组的基础教程https://www.runoob.com/linux/linux-user-manage.html

# 创建用户
useradd zhangsan# 修改密码,需要输入两次,而且为了保密,是看不见的,不是键盘坏了
passwd zhangsan# 查看用户关系,最后一行有刚才创建的zhangsan
cat /etc/passwd

默认/home/zhangsan目录可以使用,这里就不赋权限了,截图是我已经创建zhangsan了,就再创建一个lisi
在这里插入图片描述

3.5.2 我出现的问题说一下,使用阿里云服务器默认不允许使用账号密码远程连接服务器,我先打开运行这样做
# 编辑ssh配置
vim /etc/ssh/sshd_config# 输入/Pass,点击n键查找,找到将PasswordAuthentication no改为yes,然保存# 重启ssh
service sshd restart

在这里插入图片描述
在这里插入图片描述

3.5.3 jenkins页面找到ssh,应该是最下面,点击新增

在这里插入图片描述
输入基本信息,这里使用密码验证,建议使用令牌(后面再试验)
在这里插入图片描述
点击测试,出现success代表正确,然保存
在这里插入图片描述
我出现的问题说一下,使用阿里云服务器默认不允许使用账号密码远程连接服务器,我先打开运行这样做

# 编辑ssh配置
vim /etc/ssh/sshd_config# 输入/Pass,点击n键查找,找到将PasswordAuthentication no改为yes,然保存# 重启ssh
service sshd restart

在这里插入图片描述
在这里插入图片描述

八 构建任务

1 点击新建任务,输入任务名字,选择maven项目,点击确定

在这里插入图片描述
在这里插入图片描述

2 任务基础配置
2.1 源码管理–选git–写gitee项目地址–选令牌

令牌是前面配置好的
在这里插入图片描述

2.2 构建触发器
  • 选择gitee webhook选项(都是默认值)这句话后面有个地址,一会儿写到gitee上
  • 后面生成Gitee WebHook 密码用来给gitee配置
  • 最后勾选上时间戳
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
3 配置gitee,先做这一步,不然不能拉取代码
  1. 点击“管理”,点击“WebHooks”,点击“添加WebHook”
  2. 填写jenkins的URL和密钥,勾选push、激活,点击添加

在这里插入图片描述

在这里插入图片描述

2.3 配置Build

拉取代码

在这里插入图片描述

选择ssh将打包好的jar包发送到生产服务器
在这里插入图片描述

在这里插入图片描述

重新启动jar包脚本

#!/bin/bashjarName=my-demo1-0.0.1-SNAPSHOT.jar
PID=$(ps -ef | grep  ${jarName} | grep -v grep | awk '{ print $2 }')# -z 字符串 字符串的长度为零则为真
if [ -z "$PID" ]
thenecho "程序未启动。"
elseecho "程序在启动中,正在停止..."kill -9 $PID
fiecho '开启启动程序 ...'# 这里先刷新一下配置文件,
source /etc/profilenohup java -jar /app/jar/${jarName} >/app/jar/my-demo1.log 2>&1 &echo "starting service..."
sleep 20#根据重启后是否有当前应用判断启动是否成功
endPID=$(ps -ef | grep  ${jarName} | grep -v grep | awk '{ print $2 }')if [ -z "$endPID" ]
thenecho "程序启动失败。"
elseecho "程序重启成功...pid:"${endPID}fi

然后启动,查看执行情况在这里插入图片描述
查看执行情况
在这里插入图片描述

如果启动的时候出现这个错误
nohup: failed to run command ‘java’: No such file or directory
就执行一下下面的软连接
ln -s /usr/local/jdk /bin/java

如果遇到这个错误
nohup: failed to run command ‘java’: No such file or directory
就在脚本里面java之前增加source /etc/profile
oracle jdk会有这种情况,而openjdk不会有这种情况。

在这里插入图片描述

去服务器看日志,已经启动成功了
在这里插入图片描述

以下不用看了


【不用看】 CentOS操作系统上安装docker

官网地址https://docs.docker.com/engine/install/centos/

官网推荐用存储库的方式安装,方便后续升级

1 如果之前安装过,先删除docker包
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
2 安装软件包(提供实用程序)
sudo yum install -y yum-utils

安装完成后有Complete!提示

3 设置存储库,这个命令就是换行的,不要设置成一行
sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo

在这里插入图片描述

4 安装分为直接安装最新版和自定义安装某个版本
  1. 1 安装最新版
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

此命令安装 Docker,但不启动 Docker。它还会创建一个组,但是,默认情况下不会向该组添加任何用户
安装完成后有Complete!提示

  1. 2 查找decker的版本
yum list docker-ce --showduplicates | sort -r

在这里插入图片描述
选择一个版本安装,中间那一列第一个冒号到第一个一个中划线就是版本号,将<VERSION_STRING>替换为版本号执行即可
此命令安装 Docker,但不启动 Docker。它还会创建一个组,但是,默认情况下不会向该组添加任何用户

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
# 替换好版本号的命令
sudo yum install docker-ce-20.10.9 docker-ce-cli-20.10.9 containerd.io docker-buildx-plugin docker-compose-plugin
5 启动docker
sudo systemctl start docker
6 通过运行映像来验证 Docker 引擎安装是否成功。hello-world
sudo docker run hello-world

此命令下载测试映像并在容器中运行它。当 容器运行,它会打印确认消息并退出。

[root@iZ8vb917sZ ~]# sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:4e83453afed1b4fa1a3500525091dbfca6ce1e66903fd4c01ff015dbcb1ba33e
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/

【不用看】 用docker安装并启动jenkins

1 创建docker镜像
1.1 去跟目录,创建一个 mydocker文件夹,再创建一个Dockerfile文件
cd /
mkdir mydockervim Dockerfile

复制下面的内容到Dockerfile文件

FROM jenkins/jenkins:2.387.2
USER root
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \https://download.docker.com/linux/debian/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \https://download.docker.com/linux/debian \$(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"

先按esc键
再输入:wq保存文件

1.2 从这个Dockerfile创建一个新的docker镜像,并给这个镜像指定一个有意义的名字,例如: “myjenkins-blueocean: 2.387.2-1”:

注意这里是有个点的.点是在当前目录构建

docker build -t myjenkins-blueocean:2.387.2-1 .

这里大概执行了10分钟,也不知道是不是网络不好
解释:每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写

  • FROM 指定使用哪个镜像源
  • RUN 指令告诉docker 在镜像内执行命令,安装了什么
  • -t 指定要创建的目标镜像名
1.3 查看docker镜像docker images

可以看到刚才创建的hello-world和myjenkins-blueocean
有5个字段

  • REPOSITORY 仓库名字
  • TAG 标签、版本号
  • IMAGE ID 镜像id(同一主机唯一的)
  • CREATED 创建时间,多长时间前
  • SIZE 镜像大小

在这里插入图片描述
还可以通过镜像id更改镜像名字或者标签

docker tag feb5d9fea6a5 my-hello-world:dev

在这里插入图片描述

2 启动 docker容器
2.1 常用参数及解释
docker run \--name jenkins-docker \--rm \--detach \--privileged \--network jenkins \--network-alias docker \--env DOCKER_TLS_CERTDIR=/certs \--volume jenkins-docker-certs:/certs/client \--volume jenkins-data:/var/jenkins_home \--publish 2376:2376 \docker:dind \--storage-driver overlay2
  • name(可选)指定用于运行镜像的Docker容器名称。 默认情况下,Docker会为容器生成一个唯一的名称。
  • rm(可选)关闭Docker容器(Docker镜像的实例)时会自动移除。
  • detach (可选)在后台运行Docker容器。 以后可以通过命令docker stop jenkins-docker来停止这个实例。
  • privileged 在Docker中运行Docker目前需要特权访问才能正常工作。 对于较新的Linux内核版本,这一要求可能会放宽。
  • network 这与前面步骤中创建的网络相对应。
  • network-alias 使Docker容器中的Docker作为主机名在jenkins网络中可用。
  • env 启用在Docker服务器中使用TLS。 由于使用了特权容器,所以建议这样做,尽管它需要使用下面描述的共享卷。 该环境变量控制管理Docker TLS证书的根目录。
  • volume 将容器内的/certs/client目录映射到一个名为jenkins-docker-certs的Docker卷。
  • volume 将容器内的/var/jenkins_home目录映射到名为jenkins-data的Docker卷。 这将允许由该Docker容器的Docker守护进程控制的其他Docker容器从Jenkins挂载数据。
  • publish (可选)公开主机的Docker守护进程端口。 这对于在主机上执行docker命令来控制这个内部docker守护进程非常有用。
  • docker:dind映像本身。 该镜像可以在运行前下载,使用命令:docker image pull docker:dind。
  • Docker卷的存储驱动程序。 有关支持的选项,请参阅"Docker存储驱动程序"。
2.2 启动docker

使用Docker network Create命令在Docker中创建网桥网络:

docker network create jenkins

f645900daaf868f162bf60cc7855aacdc6c8c4b0313872dbc6820fbe0589a64b

docker run --name jenkins-blueocean --restart=on-failure --detach \--network jenkins --env DOCKER_HOST=tcp://docker:2376 \--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \--publish 8080:8080 --publish 50000:50000 \--volume jenkins-data:/var/jenkins_home \--volume jenkins-docker-certs:/certs/client:ro \myjenkins-blueocean:2.387.2-1
2.2 docker查看密钥
# 进入docker内部 访问Jenkins主目录的内容
docker container exec -it jenkins-blueocean bash

将密钥复制到浏览器,点击下一步
在这里插入图片描述

docker exec :在运行的容器中执行命令
docker exec [OPTIONS] 容器名字 COMMAND [ARG…]

OPTIONS说明
-d :分离模式: 在后台运行

-i :即使没有附加也保持STDIN 打开

-t :分配一个伪终端

七 配置环境变量(和本地环境变量类似)

2 建立主机maven目录与jenkins的映射关系jenkins-blueocean是刚才启动jenkinsm名字
docker cp /usr/local/maven jenkins-blueocean:/opt/

在这里插入图片描述

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

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

相关文章

Vue2 引入自己下载的SVG图像的方式

Vue2 引入下载的SVG图像的方式 Step 1&#xff1a;安装依赖 npm i svg-sprite-loader --saveStep 2&#xff1a;创建文件路径 // index.js import Vue from vue import SvgIcon from /components/SvgIcon// svg component// register globally Vue.component(svg-icon, Svg…

《JAVA与模式》之抽象工厂模式

系列文章目录 文章目录 系列文章目录前言一、使用简单工厂模式的解决方案二、引进抽象工厂模式三、抽象工厂模式结构四、抽象工厂模式的优缺点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看…

Hubspot 2023年推荐使用的11个AI视频生成器

视频是任何营销活动不可或缺的一部分&#xff1b;然而&#xff0c;如果你不懂编辑或时间紧迫&#xff0c;它们可能会很乏味&#xff0c;很难创建。一只手从电脑里伸出来&#xff0c;拳头碰到另一只手&#xff1b;代表AI视频生成器。 幸运的是&#xff0c;你可以利用许多人工智能…

【数据分析】数据分析介绍

专栏文章索引&#xff1a;【数据分析】专栏文章索引 目录 一、介绍 二、生活中的数据分析 1.无处不在的数据 2.为什么要进行数据分析&#xff1f; 三、数据挖掘案例 1.案例分析 一、介绍 数据采集&#xff1a;数据采集是指从不同来源收集原始数据的过程&#xff0c;包括…

考研失败, 学点Java打小工——Day3

1 编码规范——卫语句 表达异常分支时&#xff0c;少用if-else方式。   比如成绩判断中对于非法输入的处理&#xff1a; /*>90 <100 优秀>80 <90 良好>70 <80 一般>60 <70 及格<60 不及格*/Testpu…

Twitter广告投放技巧

明确目标受众&#xff1a; 确定你的目标受众&#xff0c;包括他们的兴趣、地理位置、年龄等。Twitter提供了广告定位选项&#xff0c;确保你的广告被展示给最相关的用户。 使用吸引人的图像和视频&#xff1a; 在Twitter上&#xff0c;图像和视频是引起关注的关键。确保你的广…

小程序开发平台源码系统:万能建站门店小程序功能 带完整的搭建教程以及代码包

在移动互联网时代&#xff0c;小程序以其独特的优势&#xff0c;迅速占领了市场的一席之地。然而&#xff0c;对于许多中小企业和个人开发者来说&#xff0c;缺乏专业的开发团队和技术支持&#xff0c;使得小程序开发成为一项难以逾越的技术门槛。小编给大家分享一款万能建站门…

linux 使用docker安装 postgres 教程,踩坑实践

linux 使用docker安装 postgres 教程 踩坑实践,安装好了不能远程访问。 防火墙已关闭、postgres 配置了允许所有ip 访问、网络是通的。端口也是开放的&#xff0c;就是不能用数据库链接工具访问。 最后发现是云服务器端口没开 ,将其打开 到这一步完全正确了&#xff0c;但是…

Python AI 之Stable-Diffusion-WebUI

Stable-Diffusion-WebUI简介 通过Gradio库&#xff0c;实现Stable Diffusion web 管理接口 Windows 11 安装Stable-Diffusion-WebUI 个人认为Stable-Diffusion-WebUI 官网提供的代码安装手册/自动安装不适合新手安装&#xff0c;我这边将一步步讲述我是如何搭建Python Conda…

【数据结构】单向链表的创建及4种应用

目录 前言 自定义“单向”链表类 1. 自定义一个链表类&#xff0c;并完成“初始化链表”、“添加元素&#xff08;头插法/尾插法&#xff09;”、“计算链表长度”操作&#xff1b; 自定义链表 向链表中插入元素&#xff08;头插法&#xff09; 向链表中插入元素&#xf…

2024年AI辅助研发:技术革新引领研发新纪元

文章目录 &#x1f4d1;前言一、AI辅助研发的技术进展二、行业应用案例三、面临的挑战与机遇四、未来趋势预测全篇总结 &#x1f4d1;前言 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已逐渐成为推动社会进步的重要力量。特别是在研发领域&#xff0c;A…

计算机视觉——目标检测(R-CNN、Fast R-CNN、Faster R-CNN )

前言、相关知识 1.闭集和开集 开集&#xff1a;识别训练集不存在的样本类别。闭集&#xff1a;识别训练集已知的样本类别。 2.多模态信息融合 文本和图像&#xff0c;文本的语义信息映射成词向量&#xff0c;形成词典&#xff0c;嵌入到n维空间。 图片内容信息提取特征&…

【北京大学】徐高《金融经济学二十五讲》

一、经济的任务 经济的任务之一是确保有效地分配稀缺资源&#xff0c;这是经济学中的一个核心问题。资源是有限的&#xff0c;而需求是无限的&#xff0c;因此经济系统需要通过合理的机制来分配资源以满足社会的需求。以下是关于经济分配资源的几个方面&#xff1a; 1. 资源配…

CentOS7.9 Nginx + EMQX集群组建 MQTTS平台

前面我们有介绍过单机版EMQX的安装 CentOS7 安装 EMQX&#xff08;MQTT&#xff09;&#xff0c;今天我们来讲一下实际项目里用的到MQTTS平台。 一、EMQX单机配置 简单部署两个节点&#xff0c;修改对应配置文件 (/usr/local/emqx/etc/emqx.conf) 中的node内容&#xff1a; nam…

HTML 学习笔记(十)块和内联

每个HTML元素都有一个默认的显示值&#xff0c;显示值又可以再分为block(块)和inline(内联) 一、块元素 通过F12进入浏览器开发者模式查看该元素会发现其所占宽度为整个网页的宽度 1.div标签 通过div标签将一些元素装进"盒子"&#xff0c;从而对盒子中的全部元素…

HDFS的架构优势与基本操作

目录 写在前面一、 HDFS概述1.1 HDFS简介1.2 HDFS优缺点1.2.1 优点1.2.2 缺点 1.3 HDFS组成架构1.4 HDFS文件块大小 二、HDFS的Shell操作&#xff08;开发重点&#xff09;2.1 基本语法2.2 命令大全2.3 常用命令实操2.3.1 上传2.3.2 下载2.3.3 HDFS直接操作 三、HDFS的API操作3…

提前十分钟!有方法论的人和没有方法论的人,谁更从容?弱者不应被错误引导——早读(逆天打工人爬取热门微信文章解读)

熬夜不熬夜&#xff0c;取决于你的生活态度 引言Python 代码第一篇 人民日报 提前十分钟&#xff0c;人生大不同第二篇 人民日报 来啦 新闻早班车要闻社会政策 结尾 君子如潜龙&#xff0c;藏器待时发 紧握时间的脉搏&#xff0c;提前规划十分钟 既显对他人的敬意&#xff0c;亦…

【SysBench】Linux 安装 sysbench-1.20

安装目的是为了对 MySQL 8.0.x 、PostgreSQL 进行基准测试。 0、sysbench 简介 sysbench 是一个可编写脚本的多线程基准测试工具&#xff0c;基于 LuaJIT 。 它最常用于数据库基准测试&#xff0c;但也可以 用于创建任意不涉及数据库服务器的复杂工作负载。 sysbench 附带以…

【诚信3·15】广州流辰信息|诚信至上,始终如一!

每一个承诺&#xff0c;广州流辰信息皆倾心对待&#xff1b;每一份期待&#xff0c;广州流辰信息亦用心守护。近十年用专业缔造好品质&#xff0c;用服务追求好口碑。在为客户服务的路上&#xff0c;流辰信息始终无惧考验&#xff0c;保持初心。在3.15国际消费者权益日&#xf…

SpringBoot3学习记录(有ssm基础)

目录 一、SpringBoot3 介绍 SpringBoot3 简介 SpringBoot3 快速入门 入门总结 1.为什么依赖不需要写版本 2.Startrer&#xff08;启动器&#xff09;是什么 3.SpringBootApplication 二、SpringBoot3 配置文件 统一配置管理 使用yaml配置文件&#xff08;推荐&#x…