一、maven概述
为什么学习maven?
jar包难找, 官网中,有的没有官网
jar包多, MySQL,json,mybatis等等 80多个,不方便管理
jar之间有依赖,例如 jackson,使用
项目编译
注意发音 ma ven , mei ven
是apache的开源项目,是一个项目构建工具,帮助开发者管理项目中的jar(mysql,jaskon)包,以及jar包中的依赖关系,可以编译,打包,测试项目。
将功能封装到jar包中。
maven是在开发期间,为程序员提供的项目管理工具,(项目中的jar,编译,打包)。
maven中的概念,以及maven如何工作?
maven官方,提供了一个专门存储jar的仓库,不同的开发者,或者框架的官方将这些jar包上传到maven的仓库中,每一个jar包都有唯一的位置,统一管理这些jar。
其他开发者如果需要使用,只需知道jar包在maven仓库中的位置即可。
借助maven,输入jar包地址,maven就会自动从maven仓库中下载jar
pom.xml 文件
是用来指导maven工具如何工作,里面配置项目信息,依赖的jar,编译选项等信息。
Project Object Model
坐标:地址,jar包在仓库中的地址,groupId(组)、artifactId(项目名)、packaging(jar,var
)、version (版本)的组合被称为项目的坐标。
仓库:存放jar的地方, 中央仓库(只有一份)
全球各地还有镜像仓库(备份 阿里云,国内访问快)
本地仓库(自己的电脑)
再自己的项目使用时,首先会从本地仓库下载,没有会去镜像仓库或中央仓库下载。
二、maven开发环境搭建
1.前提
1.安装jdk maven依赖于jdk
2.需要网络 第一次下载jar包,需要从中央仓库或镜像仓库下载。
2.安装配置maven
2.1下载maven
官网下载,不要下载最新版本
有些版本的提升依赖于 其他环境版本的提升
使用 3.6.0
2.2解压
解压到自己存储的目录中
2.3配置环境变量
path
配置bin到环境变量
E:\Program Files\apache-maven-3.6.0\bin
2.4测试maven
cmd中 mvn- version
2.5maven中的配置
apache-maven-3.6.0\conf 此文件夹里都是配置文件
settings.xml maven中的主配置文件
先备份一份防止出错
配置两个文件 :
1,本地仓库位置 Repository 仓库
配置本地仓库的地址
E:/mavenRepository
2,配置镜像仓库地址 ,为了下载速度快
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
3.idea中设置maven
3.1 第一步
3.2第二步
3.3 第三步
配置 maven的genmulu
修改 settings.xml文件地址 与 本地仓库位置
Apply —> Ok
3.4创建一个新项目
2.next
3.finish
3.5 maven项目结构
三、Pom.xml 配置
可在官网中下载自己所需的jar包
Maven Repository: Search/Browse/Explore (mvnrepository.com)
<?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>
<groupId>com.example</groupId> <!--组id(jar包在仓库的地址) -->
<artifactId>mavenDemo</artifactId> <!--构建id(项目名) -->
<version>1.0.0</version> <!-- 版本号-->
<name>mavenDemo</name> <!--项目名字 -->
<packaging>war</packaging> <!--打包类型 web项目打包后war格式-->
<!-- 属性设置-->
<properties>
<!--编译的版本 -->
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<junit.version>5.6.2</junit.version>
</properties>
<!--依赖 -->
<dependencies>
<!-- -->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
<!-- <type>jar</type> 包类型 默认是jar-->
<!-- <scope></scope>
依赖项的作用范围
默认是complie(编译)
compile:当项目打包时,会将此jar包,打包到项目中去
编译时和运行时依赖。如果你的项目最终打包为 war 包,则该依赖
包会被拷贝到 war 包中的 lib 目录中。 如 WEB-INF中生成lib
provided:当项目打包时,不会将此jar包打包到项目中, 这些jar由服务器等提供
编译项目主代码和测试代码时使用此依赖项,运行时由 jre 或 web
容器提供。如果你的项目最终打包为 war 包,,则该 jar包不会被打包
-->
</dependency>
<!--配置 servlet 开发环境 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
<!--本地编译使用 服务器中有此包-->
</dependency>
</dependencies>
<build>
<!-- 配置maven插件-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.0</version>
</plugin>
</plugins>
</build>
</project>
四、maven命令
-
compile 编译
编译成 target
-
clean 删除 target
-
package 打包 (war 包 )jar 包)
-
install 把项目 install 到本地仓库 包括 编译、打包、安装
可以自己写一个jar包,下载到本地仓库,在其他项目中,可以通过组id,构建id将
自己写的类应用到其他项目
-
test 运行测试代码