> 文章列表 > 【工具】Maven

【工具】Maven

【工具】Maven

文章目录

  • 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
【工具】Maven
(2)解压到一个文件夹,路径不含有中文
【工具】Maven
(3)配置环境变量

name M2_HOME
value D:\\dev\\maven\\maven3.3.9\\apache-maven-3.3.9-bin\\apache-maven-3.3.9

【工具】Maven

【工具】Maven
注意之前要配置JAVA_HOME

(4)安装正确
【工具】Maven

(5)默认仓库(本地仓库地址)
【工具】Maven

备份settings.xml
【工具】Maven

【工具】Maven

1.Maven的作用

  • 管理依赖
    jar包的管理,应用,版本
  • 构建项目
    完成项目的编译,测试,打包,部署

2.Maven核心概念

  • POM
    项目对象模式,Maven把一个项目当做一个模型,控制Maven项目构建的过程,管理Jar包。
  • 约定的目录结构
    每一个Maven项目的目录和文件都是有特定位置的。
  • 坐标
    唯一标识符,标识资源。
  • 依赖管理
    管理jar包。
  • 仓库管理
    资源存储的位置。
  • 生命周期
    maven项目构建过程
  • 插件和目标
    执行maven构建时使用的工具是插件
  • 继承
  • 聚合

3.maven目录结构

【工具】Maven

4.仓库

本地仓库, 就是你的个人计算机上的文件夹,存放各种jar

远程仓库, 在互联网上的,使用网络才能使用的仓库
①:中央仓库,最权威的, 所有的开发人员都共享使用的一个集中的仓库,
https://repo.maven.apache.org :中央仓库的地址
②:中央仓库的镜像:就是中央仓库的备份, 在各大洲,重要的城市都是镜像。
③:私服,在公司内部,在局域网中使用的, 不是对外使用的。

5.pom文件

5.1 坐标 gav

 <groupId>公司域名的倒写</groupId><artifactId>自定义项目名称</artifactId><version>自定版本号</version>

https://mvnrepository.com/ 搜索使用的中央仓库, 使用groupId 或者 artifactId作为搜索条件

【工具】Maven

开发人员需要使用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.插件

【工具】Maven

9.IDEA构建Maven

不使用内置的Maven

(1)设置之后新建项目使用配置
【工具】Maven
【工具】Maven
【工具】Maven
【工具】Maven

10.创建javase项目

(1)新建空工程

【工具】Maven
(2)使用骨架创建模块

【工具】Maven
【工具】Maven

修改配置

【工具】Maven

【工具】Maven

生命周期 插件 依赖
【工具】Maven

11.web工程

(1)maven构建项目
【工具】Maven
【工具】Maven
手动添加,补充完整
【工具】Maven
(2)创建servlet
在com.sdnu.controller下快捷键alt + insert ,搜索servlet
【工具】Maven
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 {@Overrideprotected 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();}@Overrideprotected 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)部署项目

【工具】Maven
【工具】Maven

【工具】Maven
(5)打包

【工具】Maven
最终得出一个war包
【工具】Maven

12.依赖的范围

【工具】Maven

13 Maven常用属性

Maven属性设置

<properties> 设置maven的常用属性

Maven全局变量

自定义的属性,1.在<properties> 通过自定义标签声明变量(标签名就是变量名)2.在pom.xml文件中的其它位置,使用 ${标签名} 使用变量的值自定义全局变量一般是定义 依赖的版本号, 当你的项目中要使用多个相同的版本号,先使用全局变量定义, 在使用${变量名}