Maven环境配置

1.课程内容介绍

        1.1课程安排:

                a.Spring框架 最为重要!!!
                b.SpringMVC框架 前后端交互 js/axios
                c.Mybatis框架(结构复杂!!!) 持久层框架 首选!!!
                d.SpringBoot框架
                e.MybatisPlus 对Mybatis进行了升级的框架
                f.搭建前端脚手架
                g.搭建后端服务器
                h.完成京淘项目后端开发 用户管理/商品管理/分类管理等…
                i.学习Linux 语法/命令
                j..实现Linux版本的项目发布! 提前购买云主机/购买域名


2.环境搭建

        2.1 IDEA环境配置

                ....

       2.2Maven

        2.2.1 Maven介绍

                Maven项目对象模型(POM),可以用一小段信息来管理项目的构建,报告和文档的项目管理软件;

        2.2.2历史问题

        2.2.3Maven的下载

                URL地址: https://maven.apache.org/download.cgi

在这里插入图片描述

        2.2.4 maven路径要求

                路径不能有中文/空格/特殊字符/不要放在C盘(使用C语言编写的软件容易出现问题);

                maven是用java语言开发的

        在这里插入图片描述

2.3 maven工作原理 

2.3.1 角色划分

        1.本地仓库:本地保存jar包的文件目录;

        2.远程仓库:maven官网维护的jar包信息其中解决了版本冲突问题,几乎维护了所有的开源jar包;

        3.私服镜像:为了让国内用户快速获取jar包而搭建的国内大型服务器,它连接国外远程官网服务器定时拉取更新jar包信息,以供国内用户使用;

2.3.2 maven的工作原理

1.镜像服务器搭建时需要定期拉取国外远程官网服务器的jar信息;

2.镜像服务器将拉取到的信息保存到镜像服务器本地,供国内的用户访问,使用

3.用户使用jar包时,本地仓库会先检查本地是否拥有该jar包,有的话直接调用,没有则连接国内的镜像私服,获取jar包;

4.用户的本地仓库会将拉取到的jar包保存在本地仓库文件夹中,以供用户在需要的时候及时调用;

在这里插入图片描述

2.3.3 maven的配置

        

        在这里插入图片描述

 1.配置本地仓库的位置

在这里插入图片描述

2.配置镜像私服服务器

<!--阿里云的私服镜像服务器-->
		<mirror>
	        <id>nexus-aliyun</id>
	        <mirrorOf>*</mirrorOf>
	        <name>Nexus aliyun</name>
	        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
	 	</mirror>
<!--阿里云的私服镜像服务器-->
		<mirror>
	        <id>nexus-aliyun</id>
	        <mirrorOf>*</mirrorOf>
	        <name>Nexus aliyun</name>
	        <url>https://maven.aliyun.com/repository/public</url>
	 	</mirror>


 2.3.4IDEA整合maven

说明:IDEA中每次打开一个新窗口,需要重新配置maven!!!

在这里插入图片描述

2.3.5创建第一个maven项目

1.URL地址:https://start.aliyun.com

2.指定坐标

在这里插入图片描述

3.确定版本/添加依赖 

 在这里插入图片描述

2.4 关于maven项目报错说明 

2.4.1 兼容性问题

IDEA的版本,不要太低,至少2020以上,兼容maven3.8x

2.4.2 网络问题

1.下载jar包的时候不要链接手机热点,否则容易因为热点网络不稳定的问题下载到不完整的jar包

2.检查maven配置1.配置本地仓库2.配置私服镜像

3.如果私服镜像链接有问题切换如下链接

<!--阿里云的私服镜像服务器-->
		<mirror>
	        <id>nexus-aliyun</id>
	        <mirrorOf>*</mirrorOf>
	        <name>Nexus aliyun</name>
	        <url>https://maven.aliyun.com/repository/public</url>
	 	</mirror>

注意:先将仓库清空

2.4.3关于maven缓存问题说明

说明:maven下载jar包之后,可能因为缓存导致如下报错,但程序可以正常的执行,说明jar包下载没问题,是由于缓存导致的异常;

在这里插入图片描述

 解决方案:

        1.重启IDEA

        2.清空IDEA的缓存

在这里插入图片描述

2.4.4 IDEA不能识别maven的说明 

1.IDEA识别maven的表现

在这里插入图片描述

2.IDEA不能识别maven的表现,IDEA将项目当做普通的目录看待了;

在这里插入图片描述

3.解决方案将项目添加为maven

在这里插入图片描述

 2.5关于maven高级知识讲解

2.5.1 关于坐标的说明

        1.maven坐标的意

 <!--1.定义maven的坐标
        1.1组id  一般采用公司域名倒写的方式  www.tedu.cn
        1.2项目名 项目名称必须唯一
        1.3版本号 指定项目的版本的.
        问题: maven的坐标有什么意义?
        答:
          1.maven中央仓库采用坐标的形式管理所有的jar包.
          2.可以根据坐标的位置,唯一定位jar包.
          3.可以根据坐标.依赖其它项目!!!.
    -->
    <groupId>com.jt</groupId>
    <artifactId>spring_demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spring_demo1</name>
    <description>spring_demo1</description>

   2.5.2 Pro文件说明

 <!--表示当前maven的配置信息-->
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!--以后springboot的平台的版本就是2.3.7-->
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    </properties>

        2.5.3关于依赖项的说明

        说明:maven通果依赖项,指定加载jar包的路径

在这里插入图片描述

        说明2:根据坐标查找指定的jar包 

在这里插入图片描述

3. 常见异常说明:有时maven jar包下载不正常.但是maven的工具以为是正确的,导致jar包导入报错!!如果遇到这样的报错信息,将jar包删除,然后刷新maven即可

在这里插入图片描述

2.5.4 管理器说明 

<!--依赖的管理器,在内部指定的jar包的版本,所以不需要手动指定
        一般多见于 springboot/springCloud的项目.
    -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

2.5.5build说明

说明:build的标签项目编译/打包时有用

打包:将java项目打包成xxx.jar包

 <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.7.RELEASE</version>
                <configuration>
                    <!--注意事项:必须与当前项目的主启动类一致 -->
                    <mainClass>com.jt.SpringDemo1Application</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

2.5.6 项目打包说明

常识:

1.将xxxx.java文件编译我xxx.class文件;

2.将xxxxclass文件按照特定的格式要求生成xxxx.jar包

命令:

1.clean清空项目中的target目录(class文件)

2.complie 使用maven工具进行编译将xxxx.java文件编译成xxxx.class文件;(一般不用;因为IDEA会自动编译)

3.install 将java项目打包为xxx.jar

在这里插入图片描述

关于jar包文件的说明

1.默认条件下在target目录中会生成xxx.jar包文件.(特殊:IDEA有问题,target下没有文件);

2.install之后会在本地仓库中生成jar包!!!;

在这里插入图片描述

2.6 关于jar包依赖传递性问题

2.6.1 规则说明

当用户的项目依赖A.jar包,但是A.jar包又依赖B.jar包,B.jar包又依赖C.jar包时;当用户只添加A.jar包时,会自动添加B/C依赖的jar包;这就是jar包的依赖性;

2.6.2 原理说明

        1.maven 通过dependency标签和坐标查找 指定的jar包文件.

        在这里插入图片描述

        2.根据坐标查找 包

在这里插入图片描述

2.   maven加载完成jar包之后会 ,会扫描当前文件的xxxx.pom文件

在这里插入图片描述

3.之后根据该坐标继续添加jar包依赖项.值到将所有的依赖信息加载完成为止

2.7 如何保证jar包的安全性

2.7.1 SHA1算法

SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。 0-9 A-F
————————————————
版权声明:本文为CSDN博主「闪耀太阳」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_16804847/article/details/122595069

2.7.2 关于hash知识复习

  1. 如果数据相同,进行相同的hash(函数!!!)计算, 问:结果是否相同
    答案: 必定相同!!!

  2. 如果数据不相同,进行相同的hash(函数!!!)计算, 问: 数据是否相同
    答案: 可能相同!!!
    本质: HASH碰撞: 数可能不相同,但是结果可能一样.

  3. hash碰撞能不能避免???
    不能避免,但是可以降低碰撞的概率

    解释: hash值的数量的是有限的,但是需要hash的数据是无限的!!!;

  4. 常见hash一般是8位16进制数. 排列组合有多少种?
    十六进制: 0-9 A-F 00000000-FFFFFFFF 答案: 2^32
    思路: (24)8= 2^32

 2.7.3 数据传递的原理

名词:消息摘要

在这里插入图片描述

.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值