Jenkins+gitee流水线部署springboot项目

目录

前言

一、软件版本/仓库

二、准备工作

2.1 安装jdk 11

2.2 安装maven3.9.7

2.3 安装docker

2.4 docker部署jenkins容器

三、jenkins入门使用

3.1 新手入门

3.2 jenkins设置环境变量JDK、MAVEN、全局变量

3.2.1 jenkins页面

3.2.2 jenkins容器内部终端

3.2.3 全局变量

3.3 安装国内源

3.4 jenkins设置中文

3.5 安装其他插件

四、创建jenkins任务

4.1 创建一个maven任务

4.1.2 仓库地址

4.1.3 构建build

4.1.4 dockerfile

4.1.5 shell内容

4.2 创建一个流水线pipeline任务

4.2.1查看用户凭证

4.2.2 流水线代码

4.3 私密仓库mvn任务

4.3.1 创建maven任务

4.3.2 查看gitee账户凭证

五、报错总结

5.1 bash: mvn: command not found

5.2 构建失败nohup: failed to run command 'java': No such file or directory

5.3 ADD failed: file not found in build context or excluded by .dockerignore: stat jdk-11.0.10_linux-x64_bin.tar.gz: file does not exist

5.4 java找不到主属性问题  大坑!!!更改pom.xml文件

5.5 构建时mvn:not found

5.6 The container name “/jenkins-app” is already in use by container

5.7 This Pipeline has run successfully,but does not define any stages,Please use the stage step to define some stages in this Pipeline.

5.8 Jenkins安装插件出现Signature verification failed in update site 'default' (show details),插件无法下载

5.9 Warning:This plugin is bulit for jenkins 2.387.3 or newer,Jeknins will refuse to load this plugin if installed.

六、参考


前言

比较长比较复杂,需要一点点运维基础,但基本把jenkins该踩的坑都踩老,创建一个springboot项目并上传gitee:创建第一个Springboot项目HelloWorld-CSDN博客

不想创建也可以直接克隆我的公开项目,然后再上传至你自己的gitee

 springboot项目地址:

https://gitee.com/luo_guibin/demo_springboot.git

一、软件版本/仓库

jdk:11.0.23

jdk所有版本下载地址:Java Archive | Oracle

maven:3.9.7

maven下载地址:Maven – Download Apache Maven

docker:18.09.9/docker版本无要求(jenkins使用docker部署)

jenkins:2.401(docker pull jenkins/jenkins:2.401命令拉取不了,以下链接可以下载镜像tar包,docker pull 无法下载jenkins制定版本,挂梯子也不行,不用尝试,直接用我的就行,有其他方法获取到2.4以上的版本都行)

!此处不要使用jenkins/jenkins或者jenkins镜像,前者表面上是最新镜像,我镜像源设置的是阿里云地址,其实阿里镜像好久没更新jenkins版本,实际版本为2.328(该版本不支持下载chinese插件,谨慎选择),后者则是远古版本,不要选择,两个都挂着latest最新版,实际老到不行......

#jenkins:2.401
链接:https://pan.baidu.com/s/1xDsJaixmy2Eg0uyAe94U1A?pwd=1234 
提取码:1234
#将tar文件加载为docker镜像
docker load -i *****.tar

二、准备工作

2.1 安装jdk 11

jdk安装包放在/opt下

[root@localhost opt]# pwd
/opt
[root@localhost opt]# ls
apache-maven-3.9.7-bin.tar.gz  jdk-11.0.23_linux-x64_bin.tar.gz
[root@localhost opt]# tar -zxvf jdk-11.0.23_linux-x64_bin.tar.gz 
[root@localhost opt]# mkdir /usr/local/java
[root@localhost opt]# mv jdk-11.0.23 /usr/local/java/
[root@localhost opt]# vim /etc/profile

#########添加环境变量
export JAVA_HOME=/usr/local/java/jdk-11.0.23
export PATH=$PATH:${JAVA_HOME}/bin
#########

[root@localhost opt]# source /etc/profile
[root@localhost opt]# java -version
java version "11.0.23" 2024-04-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.23+7-LTS-222)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.23+7-LTS-222, mixed mode)

2.2 安装maven3.9.7

maven安装包放在/opt下 

[root@localhost opt]# ls
apache-maven-3.9.7-bin.tar.gz  jdk-11.0.23_linux-x64_bin.tar.gz
[root@localhost apache-maven-3.9.7]# tar -zxvf apache-maven-3.9.7-bin.tar.gz
[root@localhost opt]# mv apache-maven-3.9.7 /usr/local/
[root@localhost opt]# cd /usr/local/apache-maven-3.9.7/
[root@localhost apache-maven-3.9.7]# ls
bin  boot  conf  lib  LICENSE  NOTICE  README.txt

#######创建名为ck的仓库文件夹
[root@localhost apache-maven-3.9.7]# mkdir /usr/local/apache-maven-3.9.7/ck
[root@localhost apache-maven-3.9.7]# vim /usr/local/apache-maven-3.9.7/conf/settings.xml 

#######更改maven配置文件,1 添加仓库,2 新增阿里云镜像源
<localRepository>/usr/local/apache-maven-3.9.1/ck</localRepository>

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

[root@localhost apache-maven-3.9.7]# vim /etc/profile

#######添加环境变量
export MAVEN_HOME=/usr/local/apache-maven-3.9.7
export PATH=$PATH:$MAVEN_HOME/bin
#######

[root@localhost apache-maven-3.9.7]# source /etc/profile
[root@localhost apache-maven-3.9.7]# mvn -v
Apache Maven 3.9.7 (8b094c9513efc1b9ce2d952b3b9c8eaedaf8cbf0)
Maven home: /usr/local/apache-maven-3.9.7
Java version: 11.0.23, vendor: Oracle Corporation, runtime: /usr/local/java/jdk-11.0.23
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

2.3 安装docker

请安装链接安装docker

docker--安装docker-ce-CSDN博客

2.4 docker部署jenkins容器

注意推荐使用dokcer部署jenkins,不建议用war/jar部署,很不方便,使用过程需要多次重启,并且环境变量复杂。

注意我使用的阿里云的docker镜像,docker pull jenkins(此版本显示是2.60版本,但实际是几年前的远古版本)、docker pull jenkins/jenkins(2.328版本),这两个都不要使用,使用网盘里的2.401版本

JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true 此命令跟插件下载相关

docker run -u root -d \
-p 100:8080 \
-v /var/jenkins_home/workspace/:/var/jenkins_home/workspace/ \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
-v /usr/local/java/jdk-11.0.23:/usr/local/java \
-v /usr/local/apache-maven-3.9.7:/usr/local/maven \
-e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \
-e JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true \
--restart=always \
--name myjenkins jenkins/jenkins:2.401
[root@jenkins-60 ~]# docker ps
CONTAINER ID   IMAGE             COMMAND                   CREATED         STATUS         PORTS                                                NAMES
8639174e3d49   jenkins/jenkins   "/sbin/tini -- /usr/…"   5 minutes ago   Up 5 minutes   50000/tcp, 0.0.0.0:100->8080/tcp, :::100->8080/tcp   myjenkins

三、jenkins入门使用

3.1 新手入门

访问11.0.1.60:100,cat /var/jenkins_home/secrets/initialAdminPassword 查看秘钥

[root@jenkins-60 ~]# docker exec myjenkins cat /var/jenkins_home/secrets/initialAdminPassword
a09c4ca559ff4de496495dc4f382df52

此处可以直接右上角跳过,因为在这里安装基本全部失败。

可创建新用户,也可以直接跳过,使用admin用户

先把admin的密码改了,不让每次登录都要复制,新密码:lgblgblgb(自定义),选择“save”后重新登陆

首页可以查看jenkins版本

3.2 jenkins设置环境变量JDK、MAVEN、全局变量

3.2.1 jenkins页面

#宿主机
MAVEN_HOME=/usr/local/apache-maven-3.9.1
JAVA_HOME=/usr/local/java/jdk-11.0.10

#jenkins容器
MAVEN_HOME=/usr/local/maven
JAVA_HOME=/usr/local/java

"系统管理"--“全局工具配置”--“jdk”--"maven",注意是容器内环境地址,不是宿主机环境地址

3.2.2 jenkins容器内部终端

注意每次重启jenkins加粗后都需要手动source /etc/profile,否则找不到mvn环境变量,原因未知

docker exec -it myjenkins /bin/bash

apt-get update
apt-get install vim -y

vim /etc/profile

export JAVA_HOME=/usr/local/java
export PATH=$PATH:${JAVA_HOME}/bin
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin

source /etc/profile

java -version
mvn -v

3.2.3 全局变量

一定要配置,否则流水线pipeline会找不到mvn命令

root@0a84ef7665d3:/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/java/bin:/usr/local/maven/bin

3.3 安装国内源

此时我们查看插件,插件提示需要更新jenkins版本,#####非常重要#####翻阅很多资料都找不到,注意需要选择对应版本,我此处使用的2.328版本,网上很多都是直接使用清华源最新镜像,会提示该插件需要到最新版或者更新才能使用。

换源,选择“Manage Jenkins”,“Manage Plugins”,“Advanced”,“Update Site”,更换成国内源,手动选择版本

Index of /jenkins/updates/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

该图片是错误的,实际地址是https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-2.401.1/update-center.json

#原地址
https://updates.jenkins.io/update-center.json

#更改后地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-2.401.1/update-center.json

3.4 jenkins设置中文

安装两个插件“locale”、“Localization: Chinese (Simplified)”,注意2.328版本下载不了Localization: Chinese (Simplified),不能设置中文。

安装完成后重启容器就自动切换成中文了

[root@jenkins-60 ~]# docker restart myjenkins
myjenkins

3.5 安装其他插件

安装其他插件,安装完后重启容器

Maven Integration  用于构建maven项目

Pipeline: Stage View  用于构建 pipeline流水线项目

gitee  用于使用gitee拉取代码

git  用于拉去代码

ssh  用于ssh使用cmd命令

pipeline 用于构建任务视图

docker exec -it myjenkins /bin/bash

apt-get update
apt-get install vim -y

vim /etc/profile

#######
export JAVA_HOME=/usr/local/java
export PATH=$PATH:${JAVA_HOME}/bin
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin
#######

source /etc/profile

java -version
mvn -v

四、创建jenkins任务

4.1 创建一个maven任务

4.1.2 仓库地址

源码管理,没有用户凭证,可以直接创建一个,注意是“用户名和密码”类型,不是“gitee API”令牌。注意此处如果是公开仓库,凭证可以直接选择“无”

4.1.3 构建build

4.1.4 dockerfile

需要提前把jdk-11.0.23_linux-x64_bin.tar.gz文件放到容器内/home/webapps目录,以tar包形式就可以,ADD命令会自动解压

Dockerfile内容


[root@jenkins-60 opt]# docker exec -it myjenkins /bin/bash
root@0a84ef7665d3:/# mkdir /home/webapps
root@0a84ef7665d3:/# vim /home/webapps/Dockerfile

########Dockerfile内容
FROM centos:7
EXPOSE 8081
RUN mkdir -p /usr/local/java
ADD jdk-11.0.23_linux-x64_bin.tar.gz /usr/local/java/
ADD demo_springboot-0.0.1-SNAPSHOT.jar /app.jar
ENV JAVA_HOME /usr/local/java/jdk-11.0.23
ENV PATH $JAVA_HOME/bin:$PATH
ENTRYPOINT ["nohup","java","-jar","/app.jar"]
########

[root@jenkins-60 opt]# docker cp /opt/jdk-11.0.23_linux-x64_bin.tar.gz myjenkins:/home/webapps/

root@0a84ef7665d3:/# ls /home/webapps
Dockerfile  jdk-11.0.23_linux-x64_bin.tar.gz

4.1.5 shell内容

完整的shell内容,大致内容就是将mvn打包后的jar包复制到/home/webapps/下,并且在当前目录build构建镜像,最后运行一个基于该镜像的容器jenkins-app。

#!/bin/bash

echo "部署的目录和项目名称"
DIR="/home/webapps"
projectName="demo_springboot-0.0.1-SNAPSHOT"


echo "拷贝jar包到/home/webapps目录"
cp /var/jenkins_home/workspace/test2_mvn/target/${projectName}.jar /home/webapps
sleep 5

echo "切换到启动脚本目录"
cd ${DIR}

BUILD_ID=dontKillMe

echo "build镜像"
docker build -t app:1 .

#如果没有打算上传镜像仓库,此部分可以忽略
#echo "tag打包"
#docker tag app:1 10.23.197.21:90/dev/app:1
#echo "登陆harbor"
#docker login 10.23.197.21:90
#sleep 10
#echo "push镜像"
#docker push 10.23.197.21:90/dev/app:1
#sleep 20

echo "docker运行app"
docker run -d -p 8081:8081 --name jenkins-app app:1

构建后生成一个app:1的镜像并运行会自动运行一个名为jenkins-app的实例容器。

jar包位置

jar包目录:/var/jenkins_home/workspace/任务名/target/项目名-0.0.1-SNAPSHOT.jar

示例:/var/jenkins_home/workspace/test2_mvn/target/demo_springboot-0.0.1-SNAPSHOT.jar

查看构建完成生成的项目文件 

#任务文件test2_mvn,拉取代码src和pom.xml文件,target则是mvn构建后生成的jar包
[root@jenkins-60 ~]# ls /var/jenkins_home/workspace/test2_mvn
pom.xml  src  target
[root@jenkins-60 ~]# ls /var/jenkins_home/workspace/test2_mvn/target/
classes                                      generated-sources       maven-status
demo_springboot-0.0.1-SNAPSHOT.jar           generated-test-sources  surefire-reports
demo_springboot-0.0.1-SNAPSHOT.jar.original  maven-archiver          test-classes

#查看镜像
[root@jenkins-60 ~]# docker images | grep app
app               1         7959e5d38ca6   2 minutes ago   504MB

#查看运行的容器
[root@jenkins-60 ~]# docker ps | grep jenkins-app
ee5baf506b46   app:1                   "nohup java -jar /ap…"   About a minute ago   Up About a minute   0.0.0.0:8081->8081/tcp, :::8081->8081/tcp            jenkins-app

#查看springboot服务是否正常
[root@jenkins-60 ~]# curl 127.0.0.1:8081
<html>
<body>
<h1>hello jenkins!!!</h1>
<p>this is a html page</p>
</body>
</html>

4.2 创建一个流水线pipeline任务

创建一个pipline流水线任务,相比maven任务,pipeline任务自由度更高,拉取代码部分也需要用代码实现

pipeline默认终端位置是/var/jenkins_home/workspace/test4_mvn_pipeline

4.2.1查看用户凭证

 流水线核心内容,gitee仓库地址,gitee账户凭证ID

#凭证ID就是adminID
git credentialsId: 'ea33e7f6-af2a-46ef-8e13-015b20cd2360', url: 'https://gitee.com/*******/demo_springboot.git'

4.2.2 流水线代码

流水线完整内容,tag可调节镜像/app版本,pipeline不能使用cd命令切换目录,默认就是在/var/jenkins_home/workspace/test4_mvn_pipeline下,所以构建命令需要使用&&连用cd /home/webapps && docker build -t app:${tag} .

pipeline {
    agent any
    environment{
        DIR="/home/webapps"
        projectName="demo_springboot-0.0.1-SNAPSHOT"
        tag="4"
    }
    stages {
        stage('pull git code') {
            steps {
                echo 'pull git code'
                git credentialsId: 'ea33e7f6-af2a-46ef-8e13-015b20cd2360', url: 'https://gitee.com/*******/demo_springboot.git'
            }
        }
        stage('maven packing'){
            steps {
                echo "maven打包"
                //sh 'source /etc/profile'
                //sh 'mv /opt/cp.sh /opt/cd.sh'
                sh 'pwd'
                sh 'mvn -v'
                sh 'mvn clean'
                sh 'mvn clean package'
                echo 'maven打包完成'
                sh 'cp /var/jenkins_home/workspace/test4_mvn_pipeline/target/${projectName}.jar /home/webapps'
            }
        }
        stage('docker build'){
            steps {
                sh 'cd /home/webapps && docker build -t app:${tag} .'
                sleep 5
                sh 'pwd'
            }
        }
//如果没有本地镜像仓库,此处可以使用//注释代码
//        stage('docker push'){
//            steps {
//                sh 'docker tag app:${tag} 10.23.197.21:90/dev/app:${tag}'
//                sh 'docker login 10.23.197.21:90'
//                sh 'docker push 10.23.197.21:90/dev/app:${tag}'
//            }
//        }
        stage('docker run'){
            steps {
//                sh 'docker run -d -p 8081:8081 --name jenkins-app 10.23.197.21:90/dev/app:${tag}'
                sh 'docker run -d -p 8081:8081 --name jenkins-app app:${tag}'
            }
        }
    }
}

构建成功,生成镜像app:4成功,容器运行成功,服务运行正常

root@0a84ef7665d3:/# docker ps -a | grep jenkins-app
ee5baf506b46   app:4                   "nohup java -jar /ap…"   About a minute ago   Up About a minute   0.0.0.0:8081->8081/tcp, :::8081->8081/tcp            jenkins-app

root@0a84ef7665d3:/# docker images | grep app
app               4         eb4bb440af02   About a minute ago   504MB
app               1         7959e5d38ca6   15 hours ago         504MB

[root@jenkins-60 ~]# curl 127.0.0.1:8081
<html>
<body>
<h1>hello jenkins!!!</h1>
<p>this is a html page</p>
</body>
</html>

4.3 私密仓库mvn任务

4.3.1 创建maven任务

4.3.2 查看gitee账户凭证

私密仓库,请确保凭证账户与gitee账户一致,切该gitee账户拥有访问该仓库权限

设置凭证后就可以了

如果是流水线, 在“凭据管理”可以查看唯一标识码

五、报错总结

5.1 bash: mvn: command not found

 每次重启jenkins容器后都需要进入容器source /etc/profile 加载环境变量

[root@jenkins-60 ~]# docker exec -it myjenkins /bin/bash
root@0a84ef7665d3:/# mvn
bash: mvn: command not found
root@0a84ef7665d3:/# source /etc/profile
root@0a84ef7665d3:/# mvn -v
Apache Maven 3.9.7 (8b094c9513efc1b9ce2d952b3b9c8eaedaf8cbf0)
Maven home: /usr/local/maven
Java version: 11.0.23, vendor: Oracle Corporation, runtime: /usr/local/java
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

5.2 构建失败nohup: failed to run command 'java': No such file or directory

dockerfile文件有误,build构建镜像时没找到java环境,原因是我把dockerfile文件中的jdk版本写错了

报错总结
[root@jenkins-60 ~]# docker logs 8c1d821b8dc8f3ddbe7c280c231a0b7fa0e611356a0ea858611e86427deb8839
nohup: failed to run command 'java': No such file or directory

5.3 ADD failed: file not found in build context or excluded by .dockerignore: stat jdk-11.0.10_linux-x64_bin.tar.gz: file does not exist

dockerfile文件有误,build构建镜像时没找到java环境,原因是我把dockerfile文件中的jdk版本写错了

ADD failed: file not found in build context or excluded by .dockerignore: stat jdk-11.0.10_linux-x64_bin.tar.gz: file does not exist

5.4 java找不到主属性问题  大坑!!!更改pom.xml文件

5.5 构建时mvn:not found

jenkins没有添加系统全局变量

root@0a84ef7665d3:/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/java/bin:/usr/local/maven/bin

再次构建

5.6 The container name “/jenkins-app” is already in use by container

构建完成,但是运行镜像时有一个同名镜像,我忘记删除了

root@0a84ef7665d3:/# docker rm jenkins-app
jenkins-app

删除镜像重新构建就可以了 

5.7 This Pipeline has run successfully,but does not define any stages,Please use the stage step to define some stages in this Pipeline.

pipeline 插件没安装好,重新安装,安装后重启jenkins

5.8 Jenkins安装插件出现Signature verification failed in update site 'default' (show details),插件无法下载

https://www.cnblogs.com/iyiluo/p/17688649.html

5.9 Warning:This plugin is bulit for jenkins 2.387.3 or newer,Jeknins will refuse to load this plugin if installed.

更换国内指定版本源

六、参考

 jenkins部署springboot项目:

Jenkins 自动化构建部署 Spring Boot 项目(从零到搭建完成)_jenkins部署springboot项目-CSDN博客

仓库的credentials 只能选择ssh key 或者用户名密码的凭据,gitee api token的凭据只是给触发器插件用的,这是两套凭据。所以需要单独为git源码管理插件配置ssh key 或者用户名密码凭据 

耐心配置Jenkins全局连接Gitee_jenkins gitee-CSDN博客

更改容器挂载目录

容器指定挂载目录后如何更改挂载目录_容器挂载目录重置方法-CSDN博客

jenkins构建springboot,脚本start.sh,stop.sh

Jenkins 自动化构建部署 Spring Boot 项目(从零到搭建完成)_jenkins部署springboot项目-CSDN博客

jar包没有主属性问题

jar中没有主清单属性 java -jar xxx-0.0.1-SNAPSHOT.jar 没有主清单属性(解决 全程图解 windows)-CSDN博客

dockerfile构建jdk环境:

Docker手动构建JDK镜像_docker 打包含jdk的镜像-CSDN博客

插件版本问题

关于Jenkins安装后,插件管理中插件版本依赖报错问题的解决方法_warning: this plugin is built for jenkins 2.361.4 -CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何选择理想CDN服务商来提升网站性能

在数字时代&#xff0c;网络速度已成为衡量网站成功的关键指标之一。快速加载的网站不仅提升用户体验&#xff0c;还对网站的搜索引擎排名产生显著影响。用户期望网站能够迅速响应其请求&#xff0c;而任何延迟都可能导致用户不满和流失。研究表明&#xff0c;网站加载时间的每…

视觉应用线扫相机速度反馈(倍福CX7000PLC应用)

运动控制实时总线相关内容请参考运动控制专栏,这里不再赘述 1、运动控制常用单位u/s运动控制单位[u/s]介绍_运动控制 unit是什么单位-CSDN博客文章浏览阅读176次。运动控制很多手册上会写这样的单位,这里的u是英文单词unit的缩写,也就是单位的意思,所以这里的单位不是微米…

罚函数的概念及内罚与外罚的理解与应用

罚函数&#xff08;Penalty Function&#xff09;是一种在优化算法中用来处理约束问题的方法。 其基本思想是在目标函数中加入一个罚项&#xff08;penalty term&#xff09;&#xff0c;以此来惩罚违反约束条件的解&#xff0c;从而引导算法寻找满足约束条件的最优解。 具体…

【漏洞复现】金和OA C6 download.jsp 任意文件读取漏洞

免责声明&#xff1a; 本文内容旨在提供有关特定漏洞或安全漏洞的信息&#xff0c;以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步&#xff0c;并非出于任何恶意目的。阅读者应该明白&#xff0c;在利用本文提到的漏洞信息或进行相关测…

ps 科研图文字变清晰

目录 网站 PS 网站 AI照片修复神器&#xff0c;一键模糊图片变清晰 (picwish.cn) PS 用PS快速将一张模糊不清晰的照片变清晰&#xff0c;简单5步就好 - 知乎 (zhihu.com) CrtlJ 滤镜 其他 高反差 半径调2 叠加

深度神经网络工作原理深度神经网络训练过程(Deep Neural Networks)概述应用示例

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

家具市场规模超7660亿美元,赛盈分销这些卧室家具在海外大卖!

今年&#xff0c;全球家具市场似乎表现都十分乐观。 根据海关出口总署的相关数据&#xff0c;我国的家具出口额1-5月份达到了2121.5亿元&#xff0c;同比增长20.5%。国内家具出口增速显著&#xff0c;换句话说&#xff0c;就是老外对家具又有更多的消费能力了。 在Statista的…

Simufact Additive仿真助力金属粘结剂喷射成型(MBJ)工业化

引 言 烧结过程中“设计”补偿变形的能力被视为是实现金属粘结剂喷射成型&#xff08;MBJ&#xff09;快速商业化的关键。针对烧结过程的仿真分析&#xff0c;Simufact Additive软件现已推出了MBJ仿真模块第三个版本&#xff0c;当前版本能够准确模拟烧结过程&#xff0c;预测…

万能DIY预约小程序源码系统 适合任何行业在线预约报名 带完整的安装代码包以及搭建教程

系统概述 在当今数字化时代&#xff0c;线上预约和报名系统已经成为各行各业不可或缺的工具。为了满足市场需求&#xff0c;万能 DIY 预约小程序源码系统应运而生&#xff0c;它为各类企业和组织提供了一种便捷、高效、灵活的解决方案&#xff0c;可适用于任何行业的在线预约和…

【Python/Pytorch - 网络模型】-- TV Loss损失函数

文章目录 文章目录 00 写在前面01 基于Pytorch版本的TV Loss代码02 论文下载 00 写在前面 在医学图像重建过程中&#xff0c;经常在代价方程中加入TV 正则项&#xff0c;该正则项作为去噪项&#xff0c;对于重建可以起到很大帮助作用。但是对于一些纹理细节要求较高的任务&am…

“2024国际数字能源展”推动绿色低碳发展,助力实现“双碳”目标

随着全球气候变化问题的日益严峻&#xff0c;构建现代能源体系、推动绿色低碳发展已成为各国共同的使命和追求。在这一背景下&#xff0c;我国提出了“四个革命、一个合作”的能源安全新战略&#xff0c;旨在推动能源生产消费革命&#xff0c;保障国家能源安全&#xff0c;助力…

STM32 FreeRTOS应用

在《按键控制蜂鸣器鸣笛》的程序基础上&#xff0c;将功能导入到FreeRTOS系统上跑&#xff0c;实现检测扩展板上的KEY1状态&#xff0c;控制蜂鸣器鸣笛。按一下按键&#xff0c;蜂鸣器滴滴滴响&#xff08;每200毫秒响一次&#xff09;&#xff0c;再按一次按键&#xff0c;蜂鸣…

惠普8596E频谱分析仪

8590E系列频谱分析仪具有各种各样的性能、功能&#xff0c;其价格亦是为适应用户的承受能力而确定的。用户可以从价格低廉、具有基本性能的分析仪直至高性能分析仪中进行挑选&#xff0c;无论选择哪种分析仪&#xff0c;都会感受到8590系列频谱分析仪便于使用且高度可靠。这些仪…

Day7—zookeeper基本操作

ZooKeeper介绍 ZooKeeper&#xff08;动物园管理员&#xff09;是一个分布式的、开源的分布式应用程序的协调服务框架&#xff0c;简称zk。ZooKeeper是Apache Hadoop 项目下的一个子项目&#xff0c;是一个树形目录服务。 ZooKeeper的主要功能 配置管理 分布式锁 集群管理…

ABB机器人SMB板卡的安装及更换方法

ABB机器人SMB板卡的安装及更换方法 SMB板卡: ABB机器人的串行测量板,即SMB板(Serial measurement board)是用来记录机器人的每个轴的原点及运行轨迹的。 机器人的运动是由电机带动齿轮箱进行运动的。电机的位置信息则由安装在电机尾端的编码器反馈给SMB板,SMB板再连接到机器…

浅析MySQL-基础篇01

目录 执行一条select语句&#xff0c;发生了什么&#xff1f; MYSQL执行流程是怎么样的&#xff1f; 第一步&#xff1a;连接器 第二步&#xff1a;查询缓存 第三步&#xff1a;解析SQL 解析器 第四步&#xff1a;执行SQL 预处理器 优化器 执行器 执行一条select语句…

Web渗透:XSS-反射型存储型

跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;XSS&#xff09;是一种常见的网络安全漏洞&#xff0c;它允许攻击者将恶意脚本注入到网页中&#xff0c;其他用户在浏览这些页面时&#xff0c;可能会执行这些恶意脚本&#xff0c;从而导致各种安全问题&#xff0c;如…

SN74HC14+陶瓷振子做振荡器的试验初步

面包板搭建&#xff0c;4.5V电池供电。 注意我用杜邦线插1脚并缠绕到小频谱的天线上面&#xff0c;如果直接用杜邦线转sma。请先过衰减器。 本想试验一下465khz用SN74HC14做振荡器&#xff0c;实验了很多次&#xff0c;无法起振。 用1M&#xff0c;4M的也无法起振&#xff0c;…

【TB作品】MSP430G2553,单片机,口袋板,流量积算仪设计

题9 流量积算仪设计 某型流量计精度为0.1%, 满刻度值为4L/s&#xff0c;流量计输出为4—20 mA。 设计基于MSP430及VFC32的流量积算仪。 具体要求 (1) 积算仪满刻度10000 L&#xff0c;精度0.1 L; 计满10000 L&#xff0c;自动归零并通过串口&#xff08;RS232&#xff09;向上位…

git配置ssh key

一、生成ssh公钥和私钥对 打开终端&#xff0c;输入命令&#xff0c;-C 后是git邮箱&#xff0c;在 Enter file in which to save the key (/home/my/.ssh/id_rsa): 后可以输入公钥和私钥对保存路径及文件名&#xff0c;默认是 /home/my/.ssh/id_rsa&#xff0c;其它的全部按回…