【Java】Maven是什么?手把手先创建个Maven项目

news2024/10/5 15:31:50

🚀Java程序员必备的项目管理工具——Maven

📓推荐网站(不断完善中):个人博客

📌个人主页:个人主页

👉相关专栏:CSDN相关专栏

🏝立志赚钱,干活想躺,瞎分享的摸鱼工程师一枚

🏖前言

你问我摸鱼有多深?先进Maven这个坑!

为什么这样说呢?相信很多Java的新手在初步接触Java这个语言一定时间后,会发现有一个很麻烦的地方就是很多要用到的工具jar包需要自己手动进行引入,也要自己手动的去找,这给你在高速敲代码的路上带来了阻碍。

而Maven这个项目管理工具则很好的解决了这个问题。

体验一下什么是一键构建项目…

文章目录

  • 🚀Java程序员必备的项目管理工具——Maven
    • 🏖前言
    • 1.关于Maven
      • 1.1.简介
      • 1.2.好处与功能
      • 1.3.Maven的安装
        • 1.3.1.安装教程
        • 1.3.2.Maven的配置
    • 2.Maven入门
      • 2.1.maven的三种仓库
      • 2.2.Maven的目录结构
        • 2.2.1.IDEA创建Maven工程
        • 2.2.2.Eclipse创建Maven工程
      • 2.3.创建Maven的JavaWeb工程
        • 2.3.1.Web工程的目录结构
    • 3.Maven核心
      • 3.1.坐标
        • 3.1.1.坐标的组成
      • 3.2.依赖管理
      • 3.3.依赖范围
      • 3.4.依赖传递
      • 3.5.依赖冲突
      • 3.6.依赖排除
      • 3.7.查找依赖
    • 🏜写在最后


1.关于Maven

1.1.简介

Maven是apache下的一个开源项目,是纯Java开发的,主要作用于管理java项目。Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具

总结一下这么官方的话术:方便Java的CV程序员们创建一个统一结构的项目让大家看起来用起来都方便!

1.2.好处与功能

  1. 依赖管理:就是对jar包的同一管理 可以节省空间
    • 想要找到对应的jar包就需要给坐标,坐标的写法:哪个公司或组织+哪个项目+哪个版本(后面会介绍)
  2. 项目构建
    • 项目的一键构建指的是项目从 编译----测试-----运行-----打包----安装 都交给maven进行管理,这个过程称为构建
  3. 跨平台(纯Java开发)
  4. 应用于大型项目可以提高开发效率
    • maven的分模块开发:每个模块都单独开发,在用maven的时候改变单独模块的源码不需要去同时编译别的模块

1.3.Maven的安装

在我们安装Maven之前,要确保自己的电脑上有我们的Java环境(JDK),这个不再多说啦!

附上地址:Maven官方下载地址

1.3.1.安装教程

  1. 先安装jdk,要求1.7版本以上

  2. 把maven软件解压缩,解压目录最好不要有中文

    1

  3. 配置环境变量MAVEN_HOME,变量值就是maven的解压路径

    2

  4. 配置环境变量PATH,将%MAVEN_HOME%\bin加入Path中,在Windows中一定要注意要用分号;与其他值隔开

  5. 验证是否配置成功:打开cmd窗口,输入mvn –v看是否有版本信息弹出如下

1.3.2.Maven的配置

全局配置

在你所在的Maven解压文件中settings.xml就是你的全局配置,可以直接改全局配置,但是更好的是可以直接写一个自己的用户配置

用户配置(建议用这个)

当运行完cmd的mvn –v之后会产生一个默认的maven目录:~/.m2/repository。

其中~表示当前用户路径C:\Users\ [UserName] (桌上上的用户文档)

~/.m2/settings.xml是用户的配置文件(默认没有该文件,需要将全局配置文件拷贝过来在进行修改)

注意:一般本地仓库的地址不使用默认配置,通常情况下需要在用户配置中,配置新的仓库地址。

配置步骤

  1. 创建一个本地仓库目录,比如D:\Maven\repository

  2. 复制maven的全局配置文件到~/.m2目录下,即创建用户配置文件

  3. 修改maven的用户配置文件

在此我直接贴上我用的settings.xml文件,其中主要的部分就是要修改镜像mirror地址

修改镜像地址的原因可想而知,因为maven在下载资源的时候走的是外网有时候相对较慢,我们可以换成国内阿里云的服务资源进行下载。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
	<!-- 本地仓库地址 -->
	<localRepository>D:\java\repository\maven_repository</localRepository>
  <!-- 修改镜像 -->
    <mirrors>
		<mirror>
			<id>nexus-aliyun</id>
			<mirrorOf>*</mirrorOf>
			<name>Nexus aliyun</name>
			<url>http://maven.aliyun.com/nexus/content/groups/public</url>
		</mirror> 
    </mirrors>
	<profiles>
		<profile>       
			 <id>jdk-1.8</id>       
			 <activation>       
					 <activeByDefault>true</activeByDefault>       
					 <jdk>1.8</jdk>       
			 </activation>       
			 <properties>       
					 <maven.compiler.source>1.8</maven.compiler.source>       
					 <maven.compiler.target>1.8</maven.compiler.target>       
					 <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>       
			 </properties>       
		</profile> 
  </profiles>
</settings>

2.Maven入门

2.1.maven的三种仓库

什么是Maven的仓库呢?

在开头的时候我们有说过,利用Maven我们可以更加方便的引入jar包

那么我们这些jar包不是凭空而来的,而是Maven通过镜像帮你下载到本地,然后统一管理、重复利用

因此我们就有了仓库这个概念,并且我们的仓库还分为几种

  • 本地仓库:自己维护
  • 远程仓库(私服):公司维护(如果你进的公司有安全限制,就不会让你直接从公共平台直接下载依赖
  • 中央仓库:maven团队维护

三种仓库的关系图

7

三种层级关系是层层叠加的。

本地仓库没有你想要的Jar包的情况,会前往当前所在的私有仓库去下载Jar包到本地。

当然如果你没有私有仓库,那么就会直接去中央仓库下载相关的Jar包到本地。

2.2.Maven的目录结构

maven项目结构

在这里讲述一下在Maven的项目中比较重要的几个东西。

首先是我们的pom.xml文件,这个是整个Maven项目的核心,关系到我们相关Jar包的引入与Maven项目的配置

其次如果你能成功运行一个Maven项目,你会发现在与pom.xml同级别目录下会产生一个target文件夹,这里面放着的是经过编译后的源码文件以及一些打包的项目文件(war、jar)。

注意:Maven的工程目录结构是固定的,如果不一样,会导致项目无法正常使用

这也就是为什么说,使用Maven项目以后我们可以保证就算是不同的工程师之间也不会因为不同的项目结构而混乱。因为Maven统一了这个项目结构)

2.2.1.IDEA创建Maven工程

  1. 先需要对IDEA中的Maven进行一下配置

    在红框圈起来的部分则表示选择你Maven解压的地址,这样IDEA才可以根据你本地的Maven来进行项目管理(如果你本地没有其实IDEA是也有自带的)

    其次注意:User settings file这个属性表示的是加载配置文件的位置,也就是我们前面提到的settings.xml文件

    如果你是按照我的建议,直接在用户目录下的.m2\文件夹下创建了对应的配置文件,那么就不需要更改。

    如果你不是这样操作,那么需要你自己手动指定你settings.xml文件的路径啦!

    8

  2. 创建Maven项目

    在创建项目的时候选择可以直接选择Next,我们并不需要项目的骨架模板

    所以直接下一步即可

    img

  3. 填写相关的项目信息

    Next之后会出现项目信息让你填写,进行简单填写后直接Next即可。

    这样就可以得到一个Maven的JavaSE项目

  4. 新建JavaSE的Maven项目

    我们会得到一个项目结构如下的Maven项目,会发现和我们之前介绍的Maven项目结构一样。

    在Maven中test目录下如果没有resources文件则会调用main目录下的

    img

  5. 细节

    在一开始创建Maven项目的时候,有的版本的IDEA编译器会提示如下,一般情况下可以选择自动导入相关依赖。

    其意思就是当你去改变pom.xml文件内容的时候,如果有新的依赖引入,那么IDEA会帮你自动更新。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QP9B8qhQ-1668131885723)(/Users/dengs/Desktop/NETBOX/Java-19:09/02_管理_Maven&log4j/maven文档/img/10.png)]

  6. 创建一个小案例试试

    image-20221111003824222

    输出后得到:

    Hello Maven!

2.2.2.Eclipse创建Maven工程

其实无论是什么工具创建Maven工程的本质都是差不多的。

无非就是注意核心的pom.xml文件,以及工程目录结构。在保持好这两个的情况下配置对应IDE工具与Maven相关的配置即可。

其实整个Eclipse在市场上的使用率是有所下降的,博主在这里也推荐一份写的还不错Eclipse教程。

大家可以作为参照。

🚪附上地址:传送门

2.3.创建Maven的JavaWeb工程

上面我们阐述的是如何创建一个基本的JavaSE所支持的Maven工程。

但是实际我们开发过程中,还有可能遇到的就是JavaWeb工程,上面的工程结构并不支持。

所以我们要在上述的结构中进行下一步的改造。

2.3.1.Web工程的目录结构

我简单的画了一下在Maven中的JavaWeb的项目目录结构

大家可以看如下图

从图中我们可以看到,相比于原本的JavaSE结构,在src目录下多出了webapp这个文件,这也就是我们web项目的核心了。

因此我们的改造就是要将原本的目录更改成如下样子

image-20221111005207493

  1. 修改核心的pom.xml文件

    首先,我们需要对maven的核心文件进行配置,说白了就是让Maven知道我们当前的这个项目是一个web项目。

    在Java中,Web项目是以war包的方式存在的,而普通的JavaSE项目则是以jar包的形式存在。

    因此我们需要将我们pom.xml文件中的项目打包形式进行变更

    image-20221111010122304

  2. 创建缺失的文件夹与文件

    根据上述内容,我们需要将缺失的文件夹进行补充,并且补上web.xml文件

    以下我给出了web.xml文件的模板内容,大家可以复制去用。

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
             version="3.0" >
        
    </web-app>
    

    得到的项目效果如下

    image-20221111005845876
  3. 刷新项目结构

    当我们改动完成之后,需要让Maven知道我们已经改变当前的Maven项目了,需要刷新一下我们的项目。

    image-20221111010417311

    可以点击右上角的刷新按钮

    或者可以打开IDEA右侧栏的Maven插件,点击刷新按钮也可以!

  4. 配置Tomcat

    以上工作准备就绪以后我们的JavaWeb工程就完成了。

    想要运行这个web项目我们还需要服务器的支持,因此需要来配置一下Tomcat

    image-20221111011049950

    先选择我们的项目配置

    image-20221111011257731

    选择添加一个本地的Tomcat服务器,当然你本地需要先解压好Tomcat服务器。

    image-20221111011445848

    填写好名字,配置好本地Tomcat所在的路径。即可

    下一步是点击底部的Fix警告,来配置项目依赖。

    image-20221111011610297

    配置好之后,可以看到如下界面。

    通过Application context这个属性,可以配置你项目的访问路径

    image-20221111011715448

    如上图所示,我们当前这个Web项目的访问路径就是localhost:8080/maven_demo_war/

    当然你如果不需要这个项目有开头路径那么你可以将Application context的值设置为/即可

最后:启动我们的项目,尝试进行访问

在访问的之前,如果你没有首页,那么你可以在你的webapp目录下创建一个index.html文件来充当首页。

最终访问结果如下:

image-20221111012748053

index.html文件代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <h1>这是一个首页</h1>
</body>
</html>

3.Maven核心

3.1.坐标

什么是坐标?

在平面几何中坐标(x,y)可以标识平面中唯一的一点。在maven中坐标就是为了定位一个唯一确定的jar包

Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范拥有了统一规范,就可以把查找工作交给机器

3.1.1.坐标的组成

maven的坐标由以下三个部分组成

  1. groupId:定义当前Maven组织名称
  2. artifactId:定义实际项目名称
  3. version:定义当前项目的当前版本

3.2.依赖管理

就是对项目中jar 包的管理。可以在pom文件中定义jar包的GAV(三大元素简称)坐标,管理依赖。

依赖声明主要包含如下元素:

如下所示

<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>	
</dependencies>

3.3.依赖范围

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fux2SgNE-1668131885724)(/Users/dengs/Desktop/NETBOX/Java-19:09/02_管理_Maven&log4j/maven文档/img/11.png)]

其中依赖范围scope 用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下:

  1. compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
  2. test:测试依赖范围。只对于测试classpath有效
  3. provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api
  4. runtime:运行时提供。例如:jdbc驱动

3.4.依赖传递

假设我们在项目中引用了某个jar包,而这个jar包又需要另外一个jar包才可以运行,这个时候maven就会将这个所需要的jar包也导入进来,这个就是依赖传递

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h49nwO0d-1668131885724)(/Users/dengs/Desktop/NETBOX/Java-19:09/02_管理_Maven&log4j/maven文档/img/12.png)]

如果B中使用A,C中使用B,则称B是C的直接依赖,而称A是C的间接依赖

C->B B->A

C直接依赖B

C间接依赖A

3.5.依赖冲突

  • 如果直接与间接依赖中包含有同一个坐标不同版本的资源依赖,以直接依赖的版本为准——就近原则
  • 如果直接依赖中包含有同一个坐标不同版本的资源依赖,以配置顺序下方的版本为准——第一声明者优先原则

总结,简单来说可能就在Maven中引入了两个相同的Jar包,但是版本不同,那么在这种情况下,我们的Maven就会自动选择以上两种之一的解决方式。

3.6.依赖排除

在遇到依赖冲突的这种情况,我们可以采用依赖排除的方式,来剔除自己不想要的Jar包。

排除掉不想要的Jar包就需要了解该Java包的artifactIdgroupId

<dependency>
	  <groupId>junit</groupId>
	  <artifactId>junit</artifactId>
	  <version>4.12</version>
	  <scope>test</scope>
	  <exclusions>
           <exclusion>
               <artifactId>hamcrest-core</artifactId>
               <groupId>org.hamcrest</groupId>
           </exclusion>			
	 </exclusions>
</dependency>

排除依赖包中所包含的依赖关系,不需要添加版本号

如果在本次依赖中有一些多余的jar包也被传递依赖过来,如果想把这些jar包排除的话可以配置exclusions进行排除

提示在idea中有maven helper插件可以更方便的管理和排除依赖,直接在idea的插件部分搜索即可

3.7.查找依赖

从上述的内容中我们可以知道,依赖非常多,每个Jar包都有不同的AGV元素,我们不能真的每个都记住吧?

所以我们在不知道的情况下其实是可以直接去中央仓库中进行模糊搜索的,只要你大概几的Jar包的名字就可以直接去搜索到相关的内容。

附上地址:

Maven官方中央仓库

一个Maven依赖搜索主页

🏜写在最后

好了,今天的Maven入门的文章就到这里告一段落了。

本文章主要是讲述了Maven的定义,以及作用。并且通过一步步的案例说明了Maven项目的构建过程。

希望大家在学习的过程中,自己动手搞起来,百看不如一练习。

希望本文章能对你有所帮助!

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

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

相关文章

线程池技术

线程池技术是一种典型的生产者-消费者模型。 线程池技术是指能够保证所创建的任一线程都处于繁忙状态&#xff0c;而不需要频繁地为了某一任务而创建和销毁线程&#xff0c;因为系统在创建和销毁线程时所耗费的cpu资源很大。如果任务很多&#xff0c;频率很高&#xff0c;为了…

站上风口,文心一言任重道远

目录正式发布时机选择逻辑推理AI绘画用户选择总结自从OpenAI公司的chatGPT发布以来&#xff0c;吸引了全球目光&#xff0c;同时也引起了我们的羡慕&#xff0c;希望有国产的聊天机器人&#xff0c;盼星星盼月亮&#xff0c;终于等来了百度文心一言的发布。 正式发布 3月16日…

VUE3项目实现动态路由demo

文章目录1、创建vue项目2、安装常用的依赖2.1 安装elementUI2.2 安装axios2.3 安装router2.4 安装vuex2.5 安装store2.6 安装mockjs3、编写登录页面以及逻辑4、编写首页以及逻辑5、配置router.js6、配置store.js7、配置menuUtils.js&#xff08;动态路由重点&#xff09;8、配置…

像ChatGPT玩转Excel数据

1.引言 最近ChatGPT的出现&#xff0c;把人工智能又带起了一波浪潮。机器人能否替代人类又成了最近热门的话题。 今天我们推荐的一个玩法和ChatGPT有点不一样。我们的课题是“让用户可以使用自然语言从Excel查询到自己想要的数据”。 要让自然语言可以从Excel中查数据&#…

论文阅读笔记《Joint Graph Learning and Matching for Semantic Feature Correspondence》

核心思想 本文提出一种联合图学习和图匹配的算法&#xff08;GLAM&#xff09;&#xff0c;将图的构建和匹配过程整合到一个端到端的注意力网络中。相比于其他启发式的建图方法&#xff0c;如Delaunay三角法、KNN方法或完全图&#xff0c;通过学习构建的图结构能够更加准确的反…

配置pytorch(gpu)分析环境

Pytorch是目前最火的深度学习框架之一&#xff0c;另一个是TensorFlow。不过我之前一直用到是CPU版本&#xff0c;几个月前买了一台3070Ti的笔记本&#xff08;是的&#xff0c;我在40系显卡出来的时候&#xff0c;买了30系&#xff0c;这确实一言难尽&#xff09;&#xff0c;…

【AutoGPT】你自己运行,我先睡了—— ChatGPT过时了吗?

系列文章目录 【AI绘画】Midjourney和Stable Diffusion教程_山楂山楂丸的博客-CSDN博客 目录 系列文章目录 前言 一、AutoGPT是什么&#xff1f; 二、AutoGPT带来的利弊 三、AutoGPT和ChatGPT区别 四、未来 总结 前言 ChatGPT是否过时&#xff1f;AutoGPT的兴起&#…

【数字图像处理】空间滤波

文章目录1. 概述2 低通&#xff08;平滑&#xff09;滤波2.1 均值滤波2.2 中值滤波2.3 高斯低通滤波2.4 双边滤波2.5 导向滤波3 高通&#xff08;锐化&#xff09;滤波3.1 Laplacian滤波器3.3 Sobel滤波器1. 概述 图像空间滤波是一种常用的图像处理技术&#xff0c;用于改变图…

基于OpenCV的人脸识别

目录 &#x1f969; 前言 &#x1f356; 环境使用 &#x1f356; 模块使用 &#x1f356; 模块介绍 &#x1f356; 模块安装问题: &#x1f969; OpenCV 简介 &#x1f356; 安装 OpenCV 模块 &#x1f969; OpenCV 基本使用 &#x1f356; 读取图片 &#x1f357; 【…

【Pytorch】利用PyTorch实现图像识别

本文参加新星计划人工智能(Pytorch)赛道&#xff1a;https://bbs.csdn.net/topics/613989052 这是目录使用torchvision库的datasets类加载常用的数据集或自定义数据集使用torchvision库进行数据增强和变换&#xff0c;自定义自己的图像分类数据集并使用torchvision库加载它们使…

安卓渐变的背景框实现

安卓渐变的背景框实现1.背景实现方法1.利用PorterDuffXfermode进行图层的混合&#xff0c;这是最推荐的方法&#xff0c;也是最有效的。2.利用canvas裁剪实现&#xff0c;这个方法有个缺陷&#xff0c;就是圆角会出现毛边&#xff0c;也就是锯齿。3.利用layer绘制边框1.背景 万…

Python 爬虫进阶必备 | 某电影站视频采集加密参数逻辑分析

点击上方“咸鱼学Python”&#xff0c;选择“加为星标”第一时间关注Python技术干货&#xff01;今日网站aHR0cHM6Ly96MS5tMTkwNy5jbi8/ang9JUU1JTkzJTg4JUU1JTg4JUE5JUMyJUI3JUU2JUIzJUEyJUU3JTg5JUI5JUU0JUI4JThFJUU1JUFGJTg2JUU1JUFFJUE0加密定位与分析分析的网站是一个电影…

强化学习分类与汇总介绍

1.强化学习&#xff08;Reinforcement Learning, RL&#xff09; 强化学习把学习看作试探评价过程&#xff0c;Agent选择一个动作用于环境&#xff0c;环境接受该动作后状态发生变化&#xff0c;同时产生一个强化信号(奖或惩)反馈给Agent&#xff0c;Agent根据强化信号和环境当…

记一次 .NET 某医疗住院系统 崩溃分析

一&#xff1a;背景 1. 讲故事 最近收到了两起程序崩溃的dump&#xff0c;查了下都是经典的 double free 造成的&#xff0c;蛮有意思&#xff0c;这里就抽一篇出来分享一下经验供后面的学习者避坑吧。 二&#xff1a;WinDbg 分析 1. 崩溃点在哪里 windbg 带了一个自动化分…

Ubuntu上搭建网站【建立数据隧道,降低开支】

上篇&#xff1a;Ubuntu搭建web站点并发布公网访问 目录 1.安装WordPress 2.创建WordPress数据库 3.安装相对URL插件 4.内网穿透将网站发布上线 1.命令行方式&#xff1a; 2.图形化操作方式 5.图书推荐 cpolar官网 1.安装WordPress 在前面的介绍中&#xff0c;我们为大…

Spring Cloud Alibaba全家桶(八)——Sentinel规则持久化

前言 本文小新为大家带来 Sentinel规则持久化 相关知识&#xff0c;具体内容包括&#xff0c;Sentinel规则推送三种模式介绍&#xff0c;包括&#xff1a;原始模式&#xff0c;拉模式&#xff0c;推模式&#xff0c;并对基于Nacos配置中心控制台实现推送进行详尽介绍~ 不积跬步…

【K8S系列】Pod详解

目录 序言 1 前言 2 为什么需要pod 3 什么是Pod&#xff1f; 3.1 Pod的组成 3.2 Pod的用途 3.3 Pod的生命周期 3.4 Pod的特点 4 Pod的使用 5 结论 序言 任何一件事情&#xff0c;只要坚持六个月以上&#xff0c;你都可以看到质的飞跃。 今天学习一下K8s-Pod相关内容&…

SQL Server的页面(pages )和盘区(extents)体系结构

pages 和 extents 体系结构一、背景二、页面和盘区2.1、页面2.2、大行支持2.3、行溢出注意事项2.4、盘区&#xff08;extents&#xff09;三、管理扩展数据块分配和可用空间3.1、管理扩展数据块分配3.2、跟踪可用空间四、管理对象使用的空间五、追踪修改后的盘区总结一、背景 …

Spring Cloud Alibaba全家桶(九)——分布式事务组件Seata

前言 本文小新为大家带来 分布式事务组件Seata 相关知识&#xff0c;具体内容包括分布式事务简介&#xff08;包括&#xff1a;事务简介&#xff0c;本地事务&#xff0c;分布式事务典型场景&#xff0c;分布式事务理论基础&#xff0c;分布式事务解决方案&#xff09;&#xf…

PyTorch 之 基于经典网络架构训练图像分类模型

文章目录一、 模块简单介绍1. 数据预处理部分2. 网络模块设置3. 网络模型保存与测试二、数据读取与预处理操作1. 制作数据源2. 读取标签对应的实际名字3. 展示数据三、模型构建与实现1. 加载 models 中提供的模型&#xff0c;并且直接用训练的好权重当做初始化参数2. 参考 pyto…