第三阶段---day01

Maven

1.maven项目对象模型:pom

	可以通过一小段描述信息来管理项目的创建,报告和文档的项目管理工具软件

2.maven下载地址

https://maven.apache.org/download.cgi

3.maven路径要求

路径不能有中文,空格,特殊字符,不要放在c盘
注意:使用c语言编辑软件容易产生问题,maven使用Java语言开发的

4.maven工作原理

  • 1.角色划分
    1> 本地仓库:在本机中保存jar包的文件目录
    2>远程仓库:maven官网维护的jar包信息,其中解决了版本冲突问题,几乎维护了所有的开源jar包
    3>私服镜像:为了让本地用户快速的获取jar包,使用私服镜像服务器提前下载jar包 速度更快
  • 2 maven的工作原理
    1>镜像服务器搭建时,需要定期拉去远程服务器中的jar包.
    2>.获取到的包.保存到镜像服务器本地.方便用户以后获取.
    3>.用户使用jar包时,先检查本地仓库中是否有包,如果没有 则连接私服镜像获取jar包. 如果有,则直接使用.
    4>.将jar包保存到本地之后,供用户使用.
  • 3 maven的配置
    1>在maven的conf文件中打开settings.xml文件
    2>配置本地仓库地址
    在这里插入图片描述
    3>配置私服镜像服务器
		<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>

在这里插入图片描述

  • 4 IDEA整合maven
    注意:IDEA每此打开一个新的窗口,需要配置新的maven
    在这里插入图片描述
  • 5 创建一个新的maven项目
    1>URL地址:http://start.aliyun.com
    2>指定坐标:
    在这里插入图片描述
    3>确定版本,添加依赖
    在这里插入图片描述

5.关于maven项目报错问题

1.兼容性问题
idea版本不要太低,至少在2020以上,兼容maven3.8.x
2.网络问题
1>.要求下载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>

4>先将maven仓库清空
3.关于maven缓存问题
说明: maven下载jar包之后,可能因为缓存导致如下报错.但是程序可以正常的执行. 说明jar包下载没有问题的. 由于缓存导致的异常.

在这里插入图片描述
解决方案:
1>. 重启IDEA
2>. 清空IDEA的缓存
在这里插入图片描述
4. IDEA不能识别maven的说明
1>.IDEA识别maven的效果
在这里插入图片描述
2>.IDEA不能识别maven的效果 IDEA将项目当做普通的目录看待.
在这里插入图片描述
3>.解决方案 将项目添加为maven
在这里插入图片描述

5.关于maven高级知识讲解

  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>
  1. 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>
  1. 关于依赖项的说明
    说明:maven通过依赖项,指定加载jar包的路径
    在这里插入图片描述
    说明2: 根据坐标.查找指定的jar包.
    在这里插入图片描述
  2. 常见异常的说明: 有时maven jar包下载不正常.但是maven的工具以为是正确的.导致jar包的导入报错!!! 如果遇到这样的报错信息.,则将jar包删除即可.
    然后刷新maven
    在这里插入图片描述
  3. 管理器说明
<!--依赖的管理器,在内部指定的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>
  1. build说明
    说明: 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>

  1. Java项目打包说明
    常识:
    1.将xxxx.java的文件编译为xxxx.class文件
    2.将xxxx.class的文件按照特定的格式要求生成xxxx.jar包

    命令:
    1>. clean 清空项目中的target目录(class文件)
    2>. compile 使用maven工具进行编译 将xxx.java生成xxx.class
    一般不用,因为IDEA会自动编译
    3>. install 将java项目打包为xxx.jar
    在这里插入图片描述
    关于jar包文件的说明:
    1>. 默认条件下 在target目录中会生成xxx.jar包文件. (特殊:IDEA有问题,target下没有文件.)
    2>. install之后会在本地仓库中生成jar包!!!
    在这里插入图片描述

6.关于jar包依赖传递的问题

  1. 规则说明
    当用户依赖A.jar包 ,但是A.jar自动依赖B.jar包.B.jar包自动依赖C.jar包 ,当用户只添加A.jar包时,会自动添加B/C的依赖 这就是jar包的传递性
  2. 原理说明
    1>maven通过dependency标签和坐标查找指定的jar包文件
    在这里插入图片描述
    2>根据坐标查找包
    在这里插入图片描述
  3. maven加载完成jar包之后,扫描当前文件的xxx.pom文件
    在这里插入图片描述
  4. 之后根据该坐标继续添加jar包依赖项. 直到将所有的依赖信息加载完成为止

7.如何保证jar包的安全性

  1. SHA1算法
    安全散列算法,是一种密码散列函数,可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数
  2. 关于hash只是复习
    1> 如果 数据相同 进行相同的hash计算,问:结果是否相同?
    答:必定相同
    2> 如果数据不相同,进行相同的hash计算,问:结果是否相同?
    答:不一定 可能会出现哈希碰撞 哈希碰撞本质就是数据可能不一样,但是hash结果可能一样
    3> 哈希碰撞能不能避免?
    答:不能,但是可以降低碰撞的概率
    因为hash值得数量是有限的,但是需要进行hash计算的数据是无线的
    4.>常见hash一般是8位16进制数,排列着有多少种?
    思路:十六进制:0-9 A-F 00000000-FFFFFFFF
    答:2^32
  3. 数据传递的原理
    名词:消息摘要
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值