tomcat多实例部署jenkins

news2024/10/6 1:36:54

tomcat多实例部署jenkins

文章目录

  • tomcat多实例部署jenkins
    • 1.简介:
    • 2.优缺点:
    • 3.工作原理:
    • 4.工作流程:
    • 5.tomcat多实例部署jenkins流程
      • 5.1.环境说明
      • 5.2.部署前准备工作
      • 5.3.多实例部署tomcat
      • 5.4.部署jenkins
      • 5.5.创建一个jenkins项目
      • 5.6.配置jenkins自动拉取项目,进行打包(maven),并将包传输到tomcat的项目目录(webapps)中

1.简介:

Jenkins是一个可扩展的、基于Web的工具,用于自动化构建、测试和部署软件项目。它支持各种版本控制系统、构建工具和测试框架,并提供了丰富的插件生态系统来满足不同的需求。

2.优缺点:

优点:

  • 灵活性:Jenkins可以与多种工具和平台集成,支持各种编程语言和技术栈,因此非常灵活适应不同的项目需求。
  • 易用性:Jenkins具有用户友好的Web界面和可视化配置,使得配置和管理任务变得简单易上手。
  • 扩展性:Jenkins拥有丰富的插件生态系统,可以通过插件来扩展其功能,满足特定项目需要。
  • 社区支持:Jenkins拥有庞大的活跃社区,它提供了大量的文档、教程和支持,可以帮助解决常见问题和获取最新的功能和改进。

缺点:

  • 配置复杂:有时,Jenkins的配置可能因其灵活性而变得复杂,特别是在处理复杂的构建和部署流程时。
  • 学习曲线:对于新手来说,学习和理解Jenkins的概念和使用方式可能需要一些时间和努力。

3.工作原理:

Jenkins的工作原理基于事件驱动和插件系统。它通过不断监测源代码管理系统中的代码变更或预定的时间触发事件,然后根据预定义的构建配置和操作来执行构建、测试和部署任务。

  1. 事件驱动机制:
    • 源代码变更事件:Jenkins可以监测源代码管理系统(如Git、SVN)中的代码变更事件。它通过轮询或钩子机制,检查源代码是否发生了变更。
    • 时间触发器:Jenkins还可以按计划(定时触发器)执行构建任务。开发人员可以设置特定的时间或时间表,使Jenkins在指定时间触发构建。
  2. 项目配置:
    • 用户通过Jenkins的Web界面创建或导入项目。在项目配置中,用户可以设置各种参数,如源代码管理、构建触发器、构建参数、构建步骤等。这些配置决定了Jenkins如何执行构建任务。
  3. 构建过程:
    • Jenkins使用定义在项目配置中的构建过程来执行构建任务。构建过程包括一系列步骤,如代码拉取、构建、测试、部署等。每个步骤可以由用户指定或使用插件提供的工具和命令来执行。
  4. 执行构建任务:
    • 当满足设定的构建触发条件(如源代码变更或时间触发)时,Jenkins将自动开始执行构建任务。它会根据项目配置中定义的构建过程逐步执行每个步骤。
  5. 结果和报告:
    • 在构建过程中,Jenkins跟踪记录构建任务的执行状态和结果。它会生成构建日志、报告和统计信息,以供用户查看和分析构建结果。
  6. 插件系统:
    • Jenkins拥有丰富的插件生态系统,用户可以根据项目需要选择并安装插件。这些插件提供了额外的功能和扩展,例如集成测试框架、静态代码分析工具、部署工具等。插件可以通过Jenkins的Web界面进行管理和配置。

4.工作流程:

  1. 配置Jenkins服务器:安装Jenkins并进行初始化配置,设置插件、环境变量、权限等。
  2. 创建或导入项目:在Jenkins中创建新项目或导入现有项目,并设置相关配置,如源代码管理、构建触发器等。
  3. 配置构建过程:定义构建过程,包括编译代码、运行测试、生成文档等。这可以通过脚本命令、构建步骤、构建脚本等方式来实现。
  4. 触发构建:Jenkins可以通过轮询源代码管理系统或根据时间计划来监测项目的变化,一旦有触发条件满足,就会触发构建过程。
  5. 构建执行:Jenkins根据配置的构建流程执行构建任务,包括代码拉取、构建、测试等操作。
  6. 构建结果和报告:Jenkins会记录构建的结果和日志,生成构建报告和统计信息,供团队查看和分析。
  7. 部署或集成:根据需要,Jenkins可以自动将构建的产物部署到目标环境,或与其他工具和平台集成,如持续部署工具、通知系统等。

5.tomcat多实例部署jenkins流程

5.1.环境说明

jenkins需部署在tomcat服务上

操作系统tomcat版本jenkins版本
centos 8tomcat-9.0.80jenkins-2.414.2

5.2.部署前准备工作

//关闭防火墙和selinux
[root@tomcat ~]# systemctl disable --now firewalld
[root@tomcat ~]# setenforce 0
[root@tomcat ~]# vim /etc/selinux/config 
[root@tomcat ~]# reboot  //重启主机生效
[root@tomcat ~]# getenforce
Disabled         //确保selinux状态为disabled

//配置yum源,建议使用阿里云的centos8源
[root@tomcat ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2495  100  2495    0     0   2338      0  0:00:01  0:00:01 --:--:--  2338
[root@tomcat ~]# yum clean all
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
17 files removed
[root@tomcat ~]# yum makecache 
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
CentOS-8.5.2111 - Base - mirrors.aliyun.com                                           410 kB/s | 4.6 MB     00:11    
CentOS-8.5.2111 - Extras - mirrors.aliyun.com                                          19 kB/s |  10 kB     00:00    
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com                                      757 kB/s | 8.4 MB     00:11    
Metadata cache created.

5.3.多实例部署tomcat

//安装java环境
[root@tomcat ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel wget vim
[root@tomcat ~]# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

//拉取tomcat软件包
[root@tomcat ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
--2023-10-10 13:41:29--  https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
Resolving archive.apache.org (archive.apache.org)... 65.108.204.189, 2a01:4f9:1a:a084::2
Connecting to archive.apache.org (archive.apache.org)|65.108.204.189|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11692853 (11M) [application/x-gzip]
Saving to: ‘apache-tomcat-9.0.80.tar.gz’

apache-tomcat-9.0.80.tar.gz   100%[===============================================>]  11.15M  25.2KB/s    in 5m 55s  

2023-10-10 13:47:25 (32.1 KB/s) - ‘apache-tomcat-9.0.80.tar.gz’ saved [11692853/11692853]

[root@tomcat ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.80.tar.gz

//解压tomcat软件包
[root@tomcat ~]# tar xf apache-tomcat-9.0.80.tar.gz 
[root@tomcat ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.80  apache-tomcat-9.0.80.tar.gz  jenkins.war

//将解压后的目录复制两份放到/usr/local/目录下,一个用于运行jenkins,另一个用来运行tomcat中的项目
[root@tomcat ~]# cp -r apache-tomcat-9.0.80 /usr/local/jenkins
[root@tomcat ~]# cp -r apache-tomcat-9.0.80 /usr/local/tomcat
[root@tomcat ~]# ls /usr/local/ && cd /usr/local/
bin  etc  games  include  jenkins  lib  lib64  libexec  sbin  share  src  tomcat

//更改tomcat中的端口号,与jenkins以示区分
[root@tomcat ~]# cd /usr/local/tomcat/conf/
[root@tomcat conf]# ls
catalina.policy      context.xml           jaspic-providers.xsd  server.xml        tomcat-users.xsd
catalina.properties  jaspic-providers.xml  logging.properties    tomcat-users.xml  web.xml
[root@tomcat conf]# vim server.xml
[root@tomcat conf]# grep -A1 '<Server port' server.xml
<Server port="8006" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
[root@tomcat conf]# grep -A3 '<Connector port' server.xml
    <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8444"
               maxParameterCount="1000"
//开启服务,查看端口
[root@tomcat conf]# ../bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@tomcat conf]# cd 
[root@tomcat ~]# cd /usr/local/jenkins/
[root@tomcat jenkins]# bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/jenkins
Using CATALINA_HOME:   /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@tomcat jenkins]# ss -antl
State          Recv-Q         Send-Q                      Local Address:Port                 Peer Address:Port        
LISTEN         0              128                               0.0.0.0:22                        0.0.0.0:*           
LISTEN         0              128                                  [::]:22                           [::]:*           
LISTEN         0              1                      [::ffff:127.0.0.1]:8005                            *:*           
LISTEN         0              1                      [::ffff:127.0.0.1]:8006                            *:*           
LISTEN         0              100                                     *:8080                            *:*           
LISTEN         0              100                                     *:8081                            *:*

5.4.部署jenkins

Jenkins官网https://www.jenkins.io/download/

///安装Jenkins所需要的Java-17-openjdk
[root@tomcat local]# cd jenkins/
[root@tomcat jenkins]# yum -y install java-17-openjdk java-17-openjdk-devel

//由于安装tomcat时安装的Java1.8,但是Jenkins需要Java17,为了防止版本冲突,需要配置jdk的优先级,从而能够同时使用这两个版本
[root@tomcat jenkins]# alternatives --config java  //优先使用java-17-openjdk

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin/java)
*+ 2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64/jre/bin/java)

Enter to keep the current selection[+], or type selection number: 1
[root@tomcat ~]# bash     //bash使其生效 

//下载jenkins.war的包
[root@tomcat ~]# wget wget https://get.jenkins.io/war-stable/2.414.2/jenkins.war
[root@tomcat ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.80  apache-tomcat-9.0.80.tar.gz  jenkins.war

////将Jenkins包复制到我们为其准备的其中一个tomcat的/usr/local/jenkins/webapps/目录中去,也就是我们前面复制的jenkins中去
[root@tomcat ~]# cp jenkins.war /usr/local/jenkins/webapps/
[root@tomcat ~]# cd /usr/local/jenkins/webapps/
[root@tomcat webapps]# ls
docs  examples  host-manager  jenkins.war  manager  ROOT

//重启服务后,则会自动解压jenkins.war
[root@tomcat webapps]# ../bin/catalina.sh stop
Using CATALINA_BASE:   /usr/local/jenkins
Using CATALINA_HOME:   /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@tomcat webapps]# ../bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/jenkins
Using CATALINA_HOME:   /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@tomcat webapps]# ss -antl
State          Recv-Q         Send-Q                      Local Address:Port                 Peer Address:Port        
LISTEN         0              128                               0.0.0.0:22                        0.0.0.0:*           
LISTEN         0              128                                  [::]:22                           [::]:*           
LISTEN         0              1                      [::ffff:127.0.0.1]:8005                            *:*           
LISTEN         0              1                      [::ffff:127.0.0.1]:8006                            *:*           
LISTEN         0              100                                     *:8080                            *:*           
LISTEN         0              100                                     *:8081                            *:*
[root@tomcat webapps]# ls      //jenkins自动解压
docs  examples  host-manager  jenkins  jenkins.war  manager  ROOT

访问jenkins页面
在这里插入图片描述

[root@tomcat webapps]# cat /root/.jenkins/secrets/initialAdminPassword
3a5952875fdc4a4c91fc87d480f32338

安装推荐插件
在这里插入图片描述
在这里插入图片描述

创建一个用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
部署完成

5.5.创建一个jenkins项目

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

测试
在这里插入图片描述

5.6.配置jenkins自动拉取项目,进行打包(maven),并将包传输到tomcat的项目目录(webapps)中

安装所需的软件包

[root@tomcat ~]# yum -y install git maven
[root@tomcat ~]# which git
/usr/bin/git
[root@tomcat ~]# which mvn
/usr/bin/mvn

修改test项目的流水线脚本内容
在这里插入图片描述
在这里插入图片描述

脚本内容:
//在gitee网站上拉取一个项目目录,然后领用mvn命令压缩至我们想要的.war格式,再将压缩包放置到tomcat的项目目录中,重启tomcat服务后自动解压,从而能够通过tomcat服务端口号访问到我们拉取的项目网页
pipeline {
    agent any
    stages {
        stage('pull code and package') {
            steps {
                git 'https://gitee.com/forgotten/tomcat-java-demo.git'
                sh 'mvn clean package'
            }
        }
        stage('publish') {
            steps {       
                sh 'cp /root/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/ftx.war'
                sh '/usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start'
           }
        }
    }
}

在这里插入图片描述

通过jenkins压缩的包存放位置

[root@tomcat target]# ls
classes            ly-simple-tomcat-0.0.1-SNAPSHOT      maven-archiver
generated-sources  ly-simple-tomcat-0.0.1-SNAPSHOT.war  maven-status
[root@tomcat target]# pwd
/root/.jenkins/workspace/test/target

进入tomcat项目进行查看

[root@tomcat webapps]# pwd
/usr/local/tomcat/webapps
[root@tomcat webapps]# ls
docs  examples  ftx  ftx.war  host-manager  manager  ROOT

通过8081端口访问我们拉取的项目

generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-status
[root@tomcat target]# pwd
/root/.jenkins/workspace/test/target




**进入tomcat项目进行查看**

~~~powershell
[root@tomcat webapps]# pwd
/usr/local/tomcat/webapps
[root@tomcat webapps]# ls
docs  examples  ftx  ftx.war  host-manager  manager  ROOT

通过8081端口访问我们拉取的项目

在这里插入图片描述
访问成功

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

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

相关文章

乐高Studio打开Solidworks零件/装配体 (sw另存obj文件)

solidworks 2020 Lego studio / part designer 截至2023-10-13&#x1f382;最新版 文章目录 操作步骤1&#xff09; solidworks 开启 ScanTo3D 功能2&#xff09; 零件 / 装配体 保存至stl格式文件3&#xff09; 以SanTo3D网格文件方式打开stl4&#xff09; 将打开的stl另存为…

销毁二叉树

同样是利用递归的方法——后序遍历 void TreeDestroy(BTNode* root) {if (root NULL){return 0;}TreeDestroy(root->left);TreeDestroy(root->right);free(root);}

React18入门(第四篇)——React中的4种CSS使用方式,CSS Module、CSS-in-Js详解

文章目录 一、普通方式使用CSS1.1 元素内联 style1.2 引入 CSS 文件1.3 类名插件 -- Classnames1.4 注意事项 二、CSS Module2.1 普通 CSS 的问题2.2 CSS Module 的特点2.3 简单使用 三、使用 sass3.1 sass 简介3.2 使用 四、CSS-in-JS4.1 CSS-in-JS 简介4.2 CSS-in-JS 常用工具…

计算机网络 实验七 NAT 和 DHCP 实验

实验目的&#xff1a; 1. 掌握NAT技术的基本原理&#xff0c;熟悉NAT基本配置。 2. 掌握DHCP协议的基本原理&#xff0c;熟悉配置DHCP服务器和中继。 实验过程分析&#xff1a; Nat基本配置 分别写出实验步骤中3&#xff09;、4&#xff09;、6&#xff09;的连通性情况&…

怎样学习C#上位机编程?

怎样学习C#上位机编程&#xff1f; 00001. 掌握C#编程和.NET框架基础。 00002. 学WinForm应用开发&#xff0c;了解控件使用和事件编程。 00003. 熟悉基本数据结构和算法&#xff0c;如链表、栈、队列。 00004. 理解串口通信协议和方法&#xff0c;用于与硬件交互。 00005…

SLAM从入门到精通(数据回放工具之rosbag)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们学习了hector-slam、gmapping slam两种slam方法。当时我们操作的时候&#xff0c;是通过手动操作的方法来建图的。但是这里面可能存在一个…

统信UOS 1060系统新增备份

原文链接&#xff1a;统信UOS 1060系统新增备份 hello&#xff0c;大家好啊&#xff0c;今天给大家带来关于统信UOS 1060系统备份还原的系列内容的第二篇文章&#xff0c;系统新增备份&#xff0c;我们可以将系统新增备份到u盘中&#xff0c;后面需要的话&#xff0c;可以进行还…

Raven2靶机渗透

1. 信息收集 1.1 主机探测 sudo arp-scan -l1.2 端口扫描 nmap -p- -A 192.168.16.185开放了80端口&#xff0c;尝试登录网址查看信息&#xff0c;通过浏览器插件找出指纹 1.3 目录扫描 访问登录界面&#xff0c;发现remember Me怀疑是shiro界面 登录/vendor/界面&#xff0…

springboot中如何进行测试用例数据的随机设定

测试用例数据设定 测试用例数据通常采用随机值进行测试&#xff0c;使用SpringBoot提供的随机数为其赋值 1.在application.yml中设置随机值 testcast:book:id: ${random.int} # 随机整数id2: ${random.int(10)} # 10以内随机数type: ${random.int(10,20)} # …

谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227)rust解法

有一个5*5的网格&#xff0c;其中恰好有一个格子是空的&#xff0c;其他格子各有一个字母。一共有4种指令&#xff1a;A, B, L, R&#xff0c;分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指令序列&#xff08;以数字0结束&#xff09;&#xff0c;输出指…

模板进阶和反向迭代器

文章目录 模板非类型模板参数模板特化函数模板特化类模板特化 模板分离编译 反向迭代器 模板 非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 非类型形参&#xff0c…

黑龙江省人口与社会经济数据集(2015-2016年)

摘要 a. 数据内容&#xff08;数据文件/表名称&#xff0c;包含的观测指标内容&#xff09; 黑龙江省人口与社会经济数据集&#xff08;2015-2016年&#xff09;反映了黑龙江省社会经济、人口和劳动力、农业生产、金融、旅游、卫生、教育、社会保障等情况&#xff0c;包含年末…

MTC证书|欧盟与英国金属类产品清关新要求

英国禁止进口俄钢材的通告内容 从2023年 9 月 30 日起&#xff0c;欧盟和英国将对在第三国加工的特定钢铁产品实施新的制裁&#xff0c;这些产品包含俄罗斯原产的钢铁原料。进口商需要在进口时申报进口货物是否合规。 MTC认证 欧盟严抓MTC认证 获悉&#xff0c;从10月1日起&a…

倒置边框半径卡片

效果展示 CSS 知识点 实现多曲面的思路 实现整体布局 <div class"card"><div class"img_box"></div><div class"content"><div class"price"></div></div> </div>.card {position…

微信小程序入门开发教程

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《微信小程序开发实战》。&#x1f3af;&#x1f3a…

【LeetCode】11. 盛最多水的容器

1 问题 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器…

[自用] win 10安装cuda 10.2和cuDNN 10.2

之前已经安装cuda 10.0和cuDNN 10.0 参考博文&#xff1a; https://blog.csdn.net/qq_50677040/article/details/132131346 https://blog.csdn.net/weixin_67615387/article/details/128807503 安装目录&#xff1a; cmd验证

Android百度地图sdk设置Marker不同颜色

使用百度地图sdk&#xff0c;在地图上画一个marker图标很简单&#xff0c;如下 private fun drawMark(point: LatLng){var resId R.mipmap.icon_device//这个资源是一张图片//构建Marker图标val bitmap BitmapDescriptorFactory.fromResource(resId)//构建MarkerOption&#…

计算机视觉:池化层的作用是什么?

本文重点 在深度学习中,卷积神经网络(CNN)是一种非常强大的模型,广泛应用于图像识别、目标检测、自然语言处理等领域。而池化层作为CNN中的一个关键步骤,扮演着优化神经网络、提升深度学习性能的重要角色。本文将深入探讨池化层的作用及其重要性,帮助读者更好地理解和应…