Maven实战-Maven基本使用,基本命令,基本概念,冲突解决

Maven实战此书阅读后重要知识点总结如下:

一、什么是Maven

Maven的目标

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

为了达到这个目标,Maven在下面几个方面做出了努力:

简化构建过程

统一构建体系

提供高质量的项目信息

提供开发的最佳实践指南

实现透明的向新特性的迁移

简化构建过程

使用Maven不须要知道一些潜在的或底层的机制,Maven屏蔽了非常多细节

统一构建体系

Maven通过使用project对象模型(project object model POM)以及一系列可共享的插件来构建project。仅仅要你熟悉了怎么构建一个Mavenproject。你就自然知道了怎么构建全部的Mavenproject。

这样的统一的构建体系能够节省大量的了解project结构的时间。

提供高质量的项目信息

Maven提供了非常多实用的project信息,这些信息一部分来自于project的POM文件,一部分来自原project源代码。

Maven能够提供下面信息:

从源代码控制处生成的改动日志文档

交叉引用源代码

开发人员邮件列表

项目依赖列表

包括覆盖率的单元測试报告

Maven改进了project信息的提供。全部这些信息对Maven用户来说都是透明的。

Maven还同意其它人提供Maven插件来获取project信息,与Maven获取的标准信息相同处理。这些都须要基于POM来完毕。

提供开发的最佳实践指南

Maven致力于收集现有的开发的最佳实践原则,并以此来简化project的开发。 比如:规范。运行,和单元測试报告是正常使用Maven构建周期的一部分。

眼下Maven中的单元測试最佳实践例如以下: 将測试源代码放在一个单独的,但与主代码同级的位置 使用測试用例命名规范来定位和运行測试 让測试用例本身去设置測试环境,不要为了測试而专门构建环境 Maven 在project的文件夹结构上也给出了很多最佳实践指南。遵守了这些project文件夹结构指南后。假设你了解了这样的文件夹结构,你也就会easy的了解其它全部遵循了这样的文件夹结构的Mavenproject。

二、安装Maven

一、准备工作

1、确定电脑上已经成功安装jdk7.0以上版本

2、maven安装包   下载地址:http://maven.apache.org/download.cgi

二、解压Maven安装包  

在上述地址中下载最新的Maven版本,解压到指定目录(此处根据自己的需要),本人解压到了D:\install\maven\apache-maven-3.5.0目录下,里面有bin、lib,conf等文件夹。

三、配置Maven环境变量

在我的电脑-------属性-------高级系统设置---------环境变量---------系统变量--------新建

变量名:M2_HOME

变量值:D:\install\maven\apache-maven-3.5.0

找到Path在环境变量值尾部加入:;%M2_HOME%\bin;  //前面注意分号

四、检查jdk和maven的环境变量是否配置成功

打开dos窗口运行命令mvn -v,出现如下图所示的信息说明安装成功;

Maven实战-Maven基本使用,基本命令,基本概念,冲突解决_第1张图片

五、修改本地仓库位置(如果不想修改本地仓库位置则这一步骤省略即可)

Maven会将下载的类库(jar包)放置到本地的一个目录下(一般默认情况下maven在本机的仓库位于C:\我的文档中\.m2.\repository),如果想重新定义这个目录的位置就需要修改Maven本地仓库的配置:

1、在自己喜欢的位置创建文件夹,此处本人创建的位置是(F:\Maven\repo)

2、在安装Maven的目录下找到conf文件夹,在文件夹中找到settings.xml文件,复制settings.xml文件放于F:\Maven

3、修改settings.xml文件,如下图所示:

Maven实战-Maven基本使用,基本命令,基本概念,冲突解决_第2张图片

4、在安装Maven的目录下找到conf文件夹,在文件夹中找到settings.xml文件,更改默认的仓库位置如下图所示:(注意两个地方的settings.xml都要修改)

Maven实战-Maven基本使用,基本命令,基本概念,冲突解决_第3张图片

5、实验一下我们刚才做的事情产生作用没有,控制台输入:mvn help:system

Maven实战-Maven基本使用,基本命令,基本概念,冲突解决_第4张图片

执行完该命令之后,在F:/Maven/repo下面会出现很多文件,这些文件就maven从中央仓库下载到本地仓库的文件。

三、Maven基本命令

mvn –version mvn -v 显示maven安装版本信息

mvn clean 清理项目打包文件,即项目下的target目录

mvn compile 编译项目下的src/main/Java目录源代码

mvn package 项目打包,在项目target目录下生成编译后的jar或war等文件

mvn install 项目打包并发布到本地仓库

mvn test 单元测试命令,执行src/test/java/下的junit的单元测试用例

-U 强制远程更新,否则默认每天只更新一次

比如-D的使用:mvn package -Dmaven.test.skip=true,即打包的时候跳过单元测试,install、deplay命令都可以使用。

可以输入mvn -h获取更多命令的帮助。

mvn site 生成项目相关信息的网站

mvn eclipse:eclipse 将项目转化eclipse项目

mvn dependency:tree 打印出项目的整个依赖关系树(排除jar包冲突时 了解整个项目依赖jar依赖树时最有用)

mvn deploy 项目打包并发布到远程仓库

命令参数

-D 传入属性参数

-P 使用指定的profile配置

-e 显示maven运行时的报错信息

-o 离线本地式执行命令,不去远程仓库更新包 -X 显示maven允许的debug信息

四、Maven概念详解

什么是Maven仓库?

Maven仓库用来存放Maven管理的所有Jar包。

分为:本地仓库 和 中央仓库。

本地仓库 Maven本地的Jar包仓库。

中央仓库 Maven官方提供的远程仓库。

当项目编译时,Maven首先从本地仓库中寻找项目所需的Jar包,若本地仓库没有,再到Maven的中央仓库下载所需Jar包

什么是“坐标”?

在Maven中,坐标是Jar包的唯一标识,Maven通过坐标在仓库中找到项目所需的Jar包。

如下代码中,groupId和artifactId构成了一个Jar包的坐标。

ch.qos.logback

logback-classic

1.1.1

groupId:所需Jar包的项目名 artifactId:所需Jar包的模块名 version:所需Jar包的版本号

传递依赖 与 排除依赖

传递依赖:

如果我们的项目引用了一个Jar包,而该Jar包又引用了其他Jar包,那么在默认情况下项目编译时,Maven会把直接引用和间接引用的Jar包都下载到本地。

排除依赖:如果我们只想下载直接引用的Jar包,那么需要在pom.xml中做如下配置:(将需要排除的Jar包的坐标写在中)

ch.qos.logback

logback-classic

依赖冲突

若项目中多个Jar同时引用了相同的Jar时,会产生依赖冲突,但Maven采用了两种避免冲突的策略 短路优先 声明优先

短路优先

本项目——>A.jar——>B.jar——>X.jar 本项目——>C.jar——>X.jar 若本项目引用了A.jar,A.jar又引用了B.jar,B.jar又引用了X.jar,并且C.jar也引用了X.jar。 在此时,Maven只会引用引用路径最短的Jar。

声明优先 若引用路径长度相同时,在pom.xml中谁先被声明,就使用谁。

你可能感兴趣的:(Maven)