工欲善其事必先利其器,只有先了解了Maven后,才能更好地使用maven编写项目。

Maven教程第一章 Maven简介

1.1 Maven概述

Apache开发的管理工具

官网:http://maven.apache.org/

概念:Maven项目对象模型(POM),通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

目标:希望开发人员能在最短时间内理解开发的完整状态。

特点:简化构建过程、统一构建体系、提供高质量的项目信息、提供开发的最佳实践指南、实现透明的新特性的迁移、简化构建过程。

1.2 Maven的作用

1、管理依赖:管理Jar及其下载,版本

2、构建项目:完成项目代码的编译、测试、打包和部署

1.3 Maven的使用方式

1、独立使用Maven:使用Maven的各种命令,完成代码的编译、测试和打包

2、结合开发工具使用:一般在idea中使用maven,简单,快捷,不需要级命令

1.4 Maven的核心概念

1. POM: pom.xml,叫做项目对象模型、把一个项目当做一个模型使用,类似于控制层,完成编译、测试、打包、安装、部署等等。

2. 约定的目录结构:有规定的目录和文件位置

3. 坐标:唯一的字符串,表示资源

4. 依赖管理:管理项目可以使用的Jar文件

5. 仓库管理(了解):资源存放的位置

6. 生命周期(了解):maven工具构架项目的过程

7. 插件和目标(了解):执行maven构建时用的工具是插件

8. 继承

9. 聚合

1.5 安装Maven环境

Maven的使用,先难后易,使用maven命令很难,在idea中直接使用maven,代替命令。

Maven安装和配置

  1. 官网下载:http://maven.apache.org/

maven详细解读(重量级来了)(1)

2.必须要下载到英文名字的文件夹中,否则文件不会生效,下面是一些核心文件的解释

bin:执行程序,主要是mvn.cmd

conf: maven的本身配置文件,主要是setting.xml

3.配置环境变量:在系统的环境变量中,指定一个M2_HOME名称,指定它的值maven工具的安装目录

再把M2_HOME加入到path中,在所有路径前加入%M2_HOME%\bin

maven详细解读(重量级来了)(2)

4.安装成功的标志

打开cmd,输入mvn -v指令,若能执行成功,则代表maven安装成功了。

maven详细解读(重量级来了)(3)

1.6 Maven的编译过程

命令行的编译方式:

输入cmd->进入命令行,进入想输入的Maven文件中,输入mvn compile,编译所有Java文件

为什么要下载? 因为Maven工具执行需要很多插件

下载了什么东西? 插件:完成某些功能

下载的东西放哪了? 默认仓库:C:\Users\Administrator\.m2\repository

执行mvn compile后,会在项目的根目录下生成target目录(结果目录),maven编译的java程序,最后的class文件都放在target目录中

也就是说,编译项目时,明明某个文件存在,可运行时系统却报错为不存在,原因就可能是该文件在项目中存在,但是在target文件夹中不存在。

修改仓库地址:在setting.xml中修改

第二章 Maven的核心概念2.1 Maven工程约定的目录结构

任何项目其实都有约定,约定就是一个规则。

maven详细解读(重量级来了)(4)

main:主程序的Java代码和配置文件

Java:程序包和包中的Java文件

resources: Java程序中要使用的配置文件

pom.xml: Maven的核心文件

2.2 pom.xml文件

pom.xml,叫做项目对象模型。控制全局。把一个项目当做一个模型使用,类似于控制层,完成编译、测试、打包、安装、部署等等。

2.3 仓库

2.4 Maven的生命周期

概念:项目的构建过程:清理、编译、测试、报告、打包、安装、部署

2.5 Maven的常用命令

概述:Maven通过命令完成

mvn clean:清理

mvn compile:编译src/main/java目录中的程序,把Java编程成class文件,并放到target/classes目录中

mvn test-compile:编译src/main/test目录下的Java程序,拷贝到target/test-class目录中

mvn test:进行单元测试,使用Junit测试src/main/java目录下的程序是否符合要求

mvn package:打包。把程序中src/main/test下面的Java编译后的class和resources中的配置文件放入到一个压缩包中。

mvn install:把jar、war安装到本机仓库中

2.6 插件

概念:Maven提供的功能,用来执行清理、编译、测试、报告、打包的程序

2.7 坐标(gav)

由三个向量组成,唯一定位一个Maven项目,三者同时定义路径,groupId和version决定Jar包名称

groupId:组织名,通常是一个公司或组织名称倒序 项目名

artifactId:模块名:通常是工程名

version:版本号

2.8 依赖(dependency)

依赖的作用:用依赖把jar导入到项目中

第三章 Maven在IDEA中的应用

3.1 在idea中设置maven

1. maven简介

idea中内置maven,但一般不用,因为用内置修改maven的设置不方便

因此使用自己安装的maven,需要覆盖默认配置,也就是指定maven的安装位置等信息

maven详细解读(重量级来了)(5)

其中:Setting选项是用来设置本项目的Maven的

Other Setting是设置以后建立的项目的Maven的

目录如下:

maven详细解读(重量级来了)(6)

进入Setting项,可以看到有三个项目管理工具

maven详细解读(重量级来了)(7)

其中,框选的两个项目工具最常用,Gradle是最新开发的项目管理工具,功能更强但应用较少。

打开Maven,框选的三个分别是Maven工具的存放路径、配置文件的存放路径、本地仓库(target文件)的存放路径

maven详细解读(重量级来了)(8)

2. maven-Runner选项的配置

1. 变得更快

接下来进入Runner选项,配置vm项,可以让maven创建的更快

原本的maven默认下载一个模板文件,有7M,下载很慢,为了不让他下载,就需要在vmOption中进行配置,禁用相关的下载。

maven详细解读(重量级来了)(9)

2. 自动刷新功能

若想让Maven自动刷新,即一旦更新pom.xm文件,Maven项目就自动刷新,只需勾选红框内的选项即可

maven详细解读(重量级来了)(10)

3. 对新创建的项目的Maven配置

操作与对本项目进行Maven配置一致

maven详细解读(重量级来了)(11)

3.2 Maven创建Java项目

需要选择的Maven模板:

使用普通Java项目模板创建即可

maven详细解读(重量级来了)(12)

3.3 Maven创建Web项目

需要选择的Maven模板:

maven详细解读(重量级来了)(13)

第四章 依赖管理

4.1 依赖的范围

依赖范围的名称和说明见下表:

一般来说,只有单元测试的依赖范围是test

下面,给出了test的依赖示例

maven详细解读(重量级来了)(14)

第五章 Maven常用设置

5.1 Maven的属性设置

<properties>设置maven的常用属性

maven详细解读(重量级来了)(15)

5.2 全局变量

全局变量的定义格式:${变量名}

对于:自定义全局变量,一般用来自定义版本号。做法是:先使用全局变量定义,再使用${变量名}

maven详细解读(重量级来了)(16)

5.3 指定资源插件

一般来说,如果不指定任何资源插件,src/main/java和 src/test/java两个目录中的所有*.java文件会被编译,并将结果分别存放到target/classes和targe/test-classes目录中

但是这两个目录中的其他文件都会被忽略掉,因此,如果我们需要使用其他文件,在运行时就会报错。 解决办法是指定资源插件,将以下内容放到<buid>标签中,将其他文件也进行编译

<build> <!--把src/main/java目录中的.xml文件包含到输出结果中,输出到classes目录中--> <resources> <resource> <directory>src/main/java</directory> <!--所在的目录--> <includes> <!--包括目录下的.properties.xml文件都会扫描到--> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <!--表示不用过滤器,因为.property已经起到过滤的作用了--> <filtering>false</filtering> </resource> </resources>

路漫漫其修远兮,学习这种事急不来,更多更全免费Java知识关注私信哦

,