maven介绍和作用
Maven 是一款为 Java 项目构建管理、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。
主要作用的理解:
依赖管理:
在编写项目时我们需要许多第三方依赖,有maven后子需要将依赖项的信息编写到Maven工程的配置文件,Maven软件会自动下载并复制这些依赖到项目中,也会自动下载依赖所需要的依赖(确保依赖版本无误)
构建管理:
项目开发后想要将项目打包成.war文件,并部署到服务器中运行;使用maven可以通过一行构建命令(mvn package)快速构建和打包
idea 也可以构建项目,为什么要使用 maven 呢?
原因1:maven构建触发方便
原因2:开发项目的软件有很多,每个软件的项目结构都不相同,使用maven构建可以统一结构
Packaging定义规则:
指示将项目打包为什么类型的文件,idea根据packaging值,识别maven项目类型!
packaging 属性为 jar(默认值),代表普通的Java工程(Java类文件,资源文件),打包以后是.jar结尾的文件。
packaging 属性为 war,代表Java的web工程(Java文件,jsp文件,html/cssjs文件,配置文件),打包以后.war结尾的文件。
packaging 属性为 pom,代表不会打包,用来做继承的父工程。
依赖管理
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--gavp属性,不会改变-->
<groupId>com.atguigu</groupId>
<artifactId>maven-javase-project-02</artifactId>
<!--构建过程,部署时修改-->
<version>1.0-SNAPSHOT</version>
<!--maven工程的打包方式 java jar[默认值]; web war; 不打包 pom-->
<packaging>war</packaging>
<!--第三方依赖信息
dependencies -项目依赖信息的集合
dependency -每个依赖项
gav\] -依赖的信息就是其他被打包成maven的工程(该工程被打包成jar) 如何知道第三方依赖的信息呢? 1 使用官网查询 [http://mvnrepository.com](http://mvnrepository.com "http://mvnrepository.com") 2 使用插件 maven-search 点击tools(工具) -maven-search 直接搜索插件即可 扩展: 1 提取版本号统一管理(自定义一个标签提取版本号到该标签)------------------------properties\<\>中设置 2 可选属性scope------------------设置在dependency中(标明依赖可以使用的范围) scope------------引入依赖的作用 默认是compile 代表该依赖可以在main中使用,也可以在test中使用,在打包和运行时都有效 设置为test 该依赖只能在test中使用(例如单元测试方法的依赖) 设置为runtime main中不会用,test不会用 在打包和运行时会使用(一般是反射的时候使用) 例如:mysql Class.format(com.mysql.cj.jdbc.Driver) 设置为provided 在main中会使用,在test中会使用,在打包和运行时会使用 例如:Servlet 总结:scope是一种锦上添花的手段,如果掌握不好,就全部默认值 --\> \