2022-09-16 第二小组 张明旭 Java学习记录

目录

重点归纳

知识点

Maven:项目构建工具,主流

作用:

在官网下载Maven,配置环境变量

maven会自动下载jar包

建立“仓库”储存下载的jar包

maven可以联网下载依赖(jar包),去哪个网下载?

在下载完之后的工程中有以下目录

maven生命周期

Maven坐标

依赖范围

依赖的传递:(常识性问题)

文件的下载


重点归纳

Maven的创建

Maven生命周期

Maven安装(封装成jar包)

Maven功能及应用

知识点

Maven:项目构建工具,主流

作用:

  1. 整个项目架构,source,resource,test,testresource

  2. 依赖:导入的jar包。

  3. 对项目进行打包。

由apache基金会出品

apache的官网命名规则:项目.apache.org。

在官网下载Maven,配置环境变量

和JAVA,JDK基本一样。

  1. 新建MAVEN_H0ME:maven的安装路径

  2. 编辑PATH:新建一个%MAVEN_HOME%\bin

  3. 通过CMD:mvn -v测试配置是否成功

Maven解压后:
conf目录,配置目录,在这个目录下有一个settings.xml,是Maven的核心配置文件。

maven会自动下载jar包

之前我们的JavaWEB阶段,所有的jar包都是直接下载好复制粘贴到我们的项目里。我们在使用框架开发的过程中,会导入非常多的jar包,jar包要统一管理,这些jar包是通过maven下载下来的!

建立“仓库”储存下载的jar包

最终项目要打包放到服务器上,这些jar包也要一起放上去,如果项目需要很多个jar包,都复制粘贴到项目里很浪费空间。我们可以把这些jar包放在本地,不往项目里导,通过某种方式连接到这些jar包。

在Maven的核心配置文件settings.xml中将默认的仓库自定义修改成自己的仓库

// 例:

<localRepository>D:/repository</localRepository>

我们通过maven下载的依赖都放在这个位置。需要手动创建这个目录。不要用中文

然后通过一个配置文件(maven项目中的pom.xml文件),找到这些jar包,最终我们往服务器上部署项目的时候,只需要部署我们的源码,和这个配置文件即可。

maven可以联网下载依赖(jar包),去哪个网下载?

默认情况下是去maven的中央仓库!在美国!
除非你的电脑做了特殊配置,否则基本上下不下来。
可以做一个镜像,阿里云maven镜像仓库,默认去这个仓库下载jar包

在在Maven的核心配置文件settings.xml中的<mirrors></mirrors>标签中的下载jar包地址修改为阿里云maven镜像仓库

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

实际上,各大编程工具已经内置了maven,可以不需要下载Maven,也不用环境配置。

当我们第一次创建maven工程时,会联网自动下载一些Maven本身需要的依赖(jar包)。

在下载完之后的工程中有以下目录

src
    main---源码
        java---源码.java
        resources---资源文件
    test---测试源码
        java---测试源码.java
        resources---测试资源文件(需要手动导,点击Test的新增目录,下方会出现 resources提示)
pom.xml就是我们上面说的那个配置文件,来管理依赖的。

除此之外还可以自己添加web,Tomcat等

maven生命周期

target目录:存放编译后的java文件
默认(default)真正进行项目编译打包等工作阶段

  1. validate:验证项目是否正确
  2. compile:编译,编译项目的源代码*****
  3. test:测试,junit这些测试不应该要求代码被打包或部署
  4. package:进行打包。*****   java工程-------.jar        javaweb工程----.war
  5. verify:验证,对集成测试结果执行检查
  6. install:安装*****:所有的项目都可以编程jar包(依赖)
  7. deploy:部署,将最终的包赋值到远程存储库,和其他开发人员共享(maven私服)

清理(clean)执行必要的清理工作。删除target文件夹
站点(site)生成项目报告,站点,发布站点(基本不用)

Maven坐标

GroupId:团体组织标识符,它一般情况下以创建这个组织的名称的逆向域名开头。
ArtifactId:项目名。单独项目的唯一标识符。
Version:版本
通过这三个向量来定位Maven仓库中其jar包所在的位置,把对应的jar包引入到工程中。

依赖范围

compile:默认。编译范围,编译,测试,运行都有效。参与打包,安装。
test:测试范围,只有在test范围下才能用,不参与打包,安装。
provided:编译和测试,不参与打包,安装。
runtime:运行,只参与运行。
system:废弃。系统。
import:废弃。引入。

依赖的传递:(常识性问题)

假如demo01中引入了mysql,servlet,fastjson,codec依赖,我把demo01安装(install)到了我的本地仓库,或者是maven私服,其他成员通过GAV引入了我的demo01,demo01中的mysql,servlet,fastjson,codec会一起引入进来。

文件的下载

之前讲过文件的上传,是将文件保存到本地磁盘上,把路径保存到数据库中

文件的下载,就是需要指定一个文件在磁盘上的真实的路径E:/upload/2022/9/adsfasdfasdfasdf.jpg构建一个流,就需要使用文件的绝对路径

要下载的文件对应的输入流

FileInputStream fileInputStream = new FileInputStream("D:\\video\\20220916\\20220916_上午.mp4");

输出流,通过响应对象获取的输出流

ServletOutputStream outputStream = response.getOutputStream();

处理中文问题

String downloadFileName = URLEncoder.encode("上午.mp4","UTF-8");

设置一个响应头,后台的响应是下载文件

response.setHeader("Content-Disposition","attachment;filename=" + downloadFileName);

接下来的操作就是一个读,一个写

        byte [] buffer = new byte[1024*5];
        int len;
        while((len = fileInputStream.read(buffer)) != -1) {
            outputStream.write(buffer,0,len);
        }

前台接收

    <h1><a href="hello.do">Hello</a></h1>
    <h1><a href="download">文件的下载</a></h1>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值