一、简介:
1、Maven,是Apache下的纯java开发的开源项目。基 于项目对象模型(缩写:POM,Project Object Model)概念,Maven利用一个中央仓库能管理一 个项目的构建,报告和文档等步骤。
2、Maven是一个项目管理工具,可以对java项目进行
构建、依赖管理。
网址:http://mavenapache.org/
二、maven的核心功能
传统醒目的问题:
1、需要把jar复制到项目中,繁琐
2、项目体积更大,不利于维护
3、不利于团队开发
Maven主要有两大核心功能:
1、依赖管理。(jar包的管理)
2、项目构建。(清理、编译、单元测试、打包、安 装、部署、运行)
三、Maven环境配置
1、下载maven:
下载地址:http://maven.apache.org/download.cgi
使用版本:apache-maven-3.3.9
2、解压maven压缩包
bin:含有mvn运行脚本
boot:含有plexus-classworlds类加载器框架
conf:含有settings.xml配置文件
lib:含有Maven运行时所需要的java类库
3.配置maven环境变量:
新建MAVEN-HOME,值为maven的安装目录
把%MAVEN-HOME%\bin;追加到path变量的值后面
cmd中通过mvn -v指令检验
4、配置maven仓库:
Maven仓库分为:本地仓库(local)、远程仓库(remote)两大类
本地仓库:本地电脑中的仓库,默认位置为:${user:home}/.m2/repository
远程仓库:远程仓库又包括:中央仓库+私服+其他公共远程仓库(比如阿里、163等)
四、Maven仓库检索顺序:
项目构建:pom.xml(添加依赖的jar包)
1、先去本地仓库找(弱国本地仓库没有)再去远程仓库找(如果远程仓库没 有)再去中央仓库找。找到后返回给远程仓库再返给本地仓库。
2、如果没有配置远程仓库,那么直接到中央仓库找,然后直接返回给本地仓 库。
五、Maven中Setting配置(再idea中)
1、添加本地仓库:localRepository
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>
(这是本地:仓库) F:\apache-maven-3.6.1-bin\apache-maven-3.6.1\repository
</localRepository>
2、添加镜像(阿里的镜像)
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
3、添加jdk版本:profile:配置文件
<profile>
<id>jdk1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>jdk1.8</jdk>
</activation>
<properties>
<maven.compiler.source>jdk1.8</maven.compiler.source>
<maven.compiler.target>jdk1.8</maven.compiler.target>
<maven.compiler.compilerVersion>jdk1.8</maven.compiler.compilerVersion>
</properties>
</profile>
六、Maven项目结构
src/main/java:存放项目的.java文件
src/main/resources:存放项目资源文件。如配置文件
src/main/webapp:web项目web资源所在目录
src/test/java:存放所有测试的.java文件。如Junit测试类
src/test/resources:测试资源文件
【target】:项目输出位置(可以自动生成)
pom.xml(maven项目核心配置文件)
七、Pom.xml文件简介
依赖范围:
A依赖B,需要在A的pom.xml文件中添加B的做标,添加坐标时需要指定依赖范围
,依赖范围包括:
1、compile:编译范围,编译范围的依赖会在编译、测试、运行、打包(war) 都会使用依赖jar包。
2、provided:提供依赖,provided依赖在编译,测试时需要,运行、打包都不 会包含。
3、runtime:运行依赖,runtime依赖在运行、测试、打包的需要,但在编译的 时候不需要,比如:jbdc的驱动包。
4、test:测试依赖,在编译和运行时不需要,他们只有在测试编译和测试运行 时使用,比如:junit,也不会被打包。
5、system:系统依赖,system依赖与provided类似,但是你必须显示的提供一 个对于本地系统中jar文件的路径,需要指定systemPath磁盘路径,
八、maven常见命令
1、clean:
mvn clean :清理(删除)编译的文件,使用插件:maven-clean-plugin:2.5:clean
2、compile :
mvn compile:编译主目录文件
使用插件:
maven-resources-plugin:2.6:resources
maven-compiler-plugin:3.1:compile
3、test:
mvn test:编译并运行test目录的代码
使用插件:
maven-resources-plugin:2.6:resources
maven-compiler-plugin:3.1compile
maven-resources-plugin:2.6:testResources
maven-compiler-plugin:3.1:testCompile
maven-surefire-plugin:2.12.4:test
4、package:
mvn package:打包项目,jar包或war包
使用插件:
maven-resources-plugin:2.6:resources
maven-compiler-plugin:3.1:compile
maven-resources-plugin:2.6:testResources
maven-compiler-plugin:3.1:testCompile
maven-surefire-plugin:2.12.4:test
maven-jar-plugin:2.4:jar
5、install:
mvn install:安装到仓库
使用插件:
maven-resources-plugin:2.6:resources
maven-compiler-plugin:3.1:compile
maven-resources-plugin:2.6:testResources
maven-compiler-plugin:3.1:testCompile
maven-surefire-plugin:2.12.4:test
maven-jar-plugin:2.4:jar
maven-install-plugin:2.4:install