Maven
- apache旗下的一个开源项目,用于管理和构建java项目的工具
- 作用
- 依赖管理
- 快捷管理项目依赖的资源(如jar包),还可以避免版本冲突的问题
- 在maven项目的porn.xml中进行配置dependency,maven会自动联网下载对应依赖
- 统一项目结构
- eclipse,IDEA等工具目录结构有差别,但使用maven就可以统一项目结构进行导入
- main文件夹:存放实际项目资源
- java文件夹:java源代码
- resources文件夹:配置文件目录
- test文件夹:测试项目目录
- pom.xml:项目配置文件
- 标准化的项目构建流程
- 清理,编译,测试,打包,发布
- 编译:点击右侧Maven面板,在Lifecycle中双击compile,编译好的文件会存放在target目录下。其他指令类似。
- 依赖管理
Maven介绍+安装
官网:Maven – Welcome to Apache Maven
- Maven中,可以通过pom.xml中的一小段信息来描述Maven工程
- 组织groupId,模块名称artifactId,版本version
- Maven仓库
- 本地仓库
- 本地计算机中,可以制定目录
- 中央仓库:全球唯一,由Maven团队维护
- 远程仓库:一般是公司团队搭建的私有仓库(等会儿偷偷用阿里云的仓库)
- 本地仓库
Maven安装
1.解压,2.配置本地仓库,3.配置阿里云私服,4.配置环境变量
视频是3.6.1,我之前已经下了3.8.4版本
- 我自己的配置
- <localRepository>D:\code\Environment\apache-maven-3.8.4\maven-repo</localRepository>
- <mirror>
<id>nexus-tencentyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus tencentyun</name>
<url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror>
</mirrors> - 已经偷了腾讯的镜像地址,不偷阿里云的了
- 验证
- mvn -v
- Maven要运行,至少要使用11版本的jdk,这里我还是1.8,火速去弄一个高版本来
- 火速下载了jdk17,修改了JAVA_HOME环境变量
IDEA集成Maven
配置Maven环境
1.配置当前工程的Maven环境
2.配置全局
- file-close project-customize-all settings
- build,execution,deployment-build tools-maven
- 我自己的配置情况
Maven坐标
- Maven中的坐标是资源的唯一标识,通过坐标可以唯一定位资源位置
- 使用坐标来定义项目或引入项目中需要的依赖
- Maven坐标主要组成
- groupId
- 定义当前Maven项目隶属组织名称
- artifactId
- 定义当前Maven项目名称(通常是模块名称)
- version
- 定义当前项目版本号
- groupId
依赖管理
依赖配置
- 依赖指当前项目运行所需要的jar包,一个项目中可以引入多个依赖
- 配置
- 在pom.xml中编写<dependencies>标签
- 在<dependencies>标签中,使用<dependency>引入坐标
- 定义坐标的groupId,artifactId,version
- 点击刷新按钮,引入最新加入的坐标
- 检查依赖是否成功添加可以查看右侧Maven面板
- 没有依赖提示:
- 访问一个Maven仓库的网站,搜索一下,找使用量最高的
- Maven 仓库地址_mvnrepository仓库地址-CSDN博客
依赖传递
- 依赖具有传递性
- 排除依赖
- 在项目中可以主动断开依赖的资源,被排除的资源无需指定版本
- <exclusions>,<exclusion>
依赖范围
- 依赖的jar包,默认情况下可以在任何地方使用,可以使用<scope>设置其作用范围
- compile,text,provided,runtime
生命周期
- Maven的生命周期是为了对所有maven项目构建过程进行抽象和统一
- Maven中有3套相互独立的生命周期
- clean:清理
- default:核心工作,如编译、测试、打包等
- site:生成报告,发布站点等
- 在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行
Web入门
spring官网spring.io
SpringBootWeb快速入门
- 使用SpringBoot开发一个Web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello World"
- 步骤
- 1.创建speingboot工程,勾选相关开发依赖
- 报错了:Cannot download 'https://start.spring.io': Read timed out
- 解决了:Error message: Cannot download ‘https://start.spring.io‘: Read timed out-CSDN博客
- 勾选依赖:Web-Spring Web
- 出现错误,解决了:java:程序包org.springframework.boot不存在的完美解决方法_java_脚本之家 (jb51.net)
- 2.创建请求处理类和请求处理方法
-
//请求处理类 @RestController public class HelloController { @RequestMapping("/hello~") public String hello(){ System.out.println("Hello Wo"); return "Hello World"; } }
这里写成hello,是因为还有一个Basic Controller也是hello,区分一下
-
- 3.运行启动类,打开浏览器测试
- 1.创建speingboot工程,勾选相关开发依赖
http协议
http概述
- 规定了浏览器和服务器之间数据传输的规则
- 一次请求对应一次相应
- HTTP协议是无状态的协议,对事务没有记忆能力,每次请求-响应都是独立的
http请求协议
- 请求行
- 请求方式GET/POST
- 请求路径
- 协议及版本
- 请求头
- key:value
- 请求体
- POST请求特有,存放请求数据
http响应协议
- 相应行
- 协议及协议版本
- 响应状态码
- 描述
- 响应头
- key:value
- 响应体
- 存放响应数据
http解析
- 通过Socket处理请求
Tomcat
Web服务器
- 是一个软件程序,对HTTP协议的操作进行了封装
- SpringBoot内置了Tomcat
SpringBoot中Tomcat
- 还没开始配置,就遇到问题:Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1
- 使用了很多方法都没能解决,Web学习到此结束
- 好消息,莫名其妙新构建了一个项目,构建成功了,但是经过了很多修改不确定是哪个起了作用
- 【maven相关问题】Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1_unresolved plugin: 'org.apache.maven.plugins:maven-CSDN博客
- Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile - 晨度 - 博客园 (cnblogs.com)
- maven的环境配置问题:出现无法解析插件_maven无法解析插件-CSDN博客
- SpringBoot Maven打包插件spring-boot-maven-plugin无法解析离谱原因记录_无法解析插件 org.springframework.boot:spring-boot-maven--CSDN博客
- 起步依赖
- 特大好消息,无需配置,spring boot内嵌了tomcat