文章目录
- 0.Maven安装(不使用IDEA内置)
- 1.Maven的作用
- 2.Maven核心概念
- 3.maven目录结构
- 4.仓库
- 5.pom文件
- 5.1 坐标 gav
- 5.2.packaging
- 5.3.依赖
- 5.4.配置属性
- 5.5.build
- 6.Maven生命周期
- 7.junit 单元测试
- 8.插件
- 9.IDEA构建Maven
- 10.创建javase项目
- 11.web工程
- 12.依赖的范围
- 13 Maven常用属性
0.Maven安装(不使用IDEA内置)
(1)3.3.9 适合 jdk1.8
(2)解压到一个文件夹,路径不含有中文
(3)配置环境变量
name M2_HOME
value D:\dev\maven\maven3.3.9\apache-maven-3.3.9-bin\apache-maven-3.3.9
注意之前要配置JAVA_HOME
(4)安装正确
(5)默认仓库(本地仓库地址)
备份settings.xml
1.Maven的作用
- 管理依赖
jar包的管理,应用,版本 - 构建项目
完成项目的编译,测试,打包,部署
2.Maven核心概念
- POM
项目对象模式,Maven把一个项目当做一个模型,控制Maven项目构建的过程,管理Jar包。 - 约定的目录结构
每一个Maven项目的目录和文件都是有特定位置的。 - 坐标
唯一标识符,标识资源。 - 依赖管理
管理jar包。 - 仓库管理
资源存储的位置。 - 生命周期
maven项目构建过程 - 插件和目标
执行maven构建时使用的工具是插件 - 继承
- 聚合
3.maven目录结构
4.仓库
本地仓库, 就是你的个人计算机上的文件夹,存放各种jar
远程仓库, 在互联网上的,使用网络才能使用的仓库
①:中央仓库,最权威的, 所有的开发人员都共享使用的一个集中的仓库,
https://repo.maven.apache.org :中央仓库的地址
②:中央仓库的镜像:就是中央仓库的备份, 在各大洲,重要的城市都是镜像。
③:私服,在公司内部,在局域网中使用的, 不是对外使用的。
5.pom文件
5.1 坐标 gav
<groupId>公司域名的倒写</groupId>
<artifactId>自定义项目名称</artifactId>
<version>自定版本号</version>
https://mvnrepository.com/ 搜索使用的中央仓库, 使用groupId 或者 artifactId作为搜索条件
开发人员需要使用mysql驱动—>maven首先查本地仓库—>私服—>镜像—>中央仓库
5.2.packaging
打包后压缩文件的扩展名,默认jar,web应用默认war
5.3.依赖
<!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
<dependencies>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.32</version>
</dependency>
</dependencies>
5.4.配置属性
properties 设置属性
5.5.build
项目进行构建时,使用的配置信息
6.Maven生命周期
maven构建项目的过程,清理,编译,测试,报告,打包,安装,部署
maven的命令:maven独立使用,通过命令,完成maven的生命周期的执行。maven可以使用命令,完成项目的清理,编译,测试等等
maven的插件: maven命令执行时,真正完成功能的是插件,插件就是一些jar文件, 一些类。
7.junit 单元测试
专门测试程序方法
testAdd叫做测试方法,它的定义规则
1.方法是public的,必须的
2.方法没有返回值, 必须的
3.方法名称是自定义的,推荐是Test + 方法名称
4.在方法的上面加入 @Test
8.插件
9.IDEA构建Maven
不使用内置的Maven
(1)设置之后新建项目使用配置
10.创建javase项目
(1)新建空工程
(2)使用骨架创建模块
修改配置
生命周期 插件 依赖
11.web工程
(1)maven构建项目
手动添加,补充完整
(2)创建servlet
在com.sdnu.controller下快捷键alt + insert ,搜索servlet
HelloServlet
package com.sdnu.controller;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("Hello Maven Web");
out.flush();
out.close();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("Hello Maven Web");
out.flush();
out.close();
}
}
web.xml
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.sdnu.controller.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
(3)添加依赖
<!--加入servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!--加入jsp依赖-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
index.jsp
<html>
<body>
<h2>Hello World!</h2>
<a href="hello">访问servlet</a>
</body>
</html>
(4)部署项目
(5)打包
最终得出一个war包
12.依赖的范围
13 Maven常用属性
Maven属性设置
<properties> 设置maven的常用属性
Maven全局变量
自定义的属性,1.在<properties> 通过自定义标签声明变量(标签名就是变量名)
2.在pom.xml文件中的其它位置,使用 ${标签名} 使用变量的值
自定义全局变量一般是定义 依赖的版本号, 当你的项目中要使用多个相同的版本号,
先使用全局变量定义, 在使用${变量名}