about Maven

Maven概述

Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM:Project Object Model)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。

Maven项目的结构和内容在一个XML文件中声明,pom.xml 项目对象模型(POM),这是整个Maven系统的基本单元

1.Maven资源库与依赖机制

  • local - 本地库

  • central - 中央库

  • remote - 远程库

Maven的本地资源库是用来存储所有项目的依赖关系(插件jar和其他文件,这些文件被Maven下载)到本地文件夹。很简单,当你建立一个Maven项目,所有相关文件将被存储在你的Maven本地仓库。

默认情况下,Maven的本地资源库默认为 .m2 目录文件夹:

当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载。首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没有找到,然后把它会从默认的 Maven 中央存储库 – http://repo1.maven.org/maven2/ 查找下载。

在Maven中,当你声明的库不存在于本地存储库中,也没有不存在于Maven中心储存库,该过程将停止并将错误消息输出到 Maven 控制台。

现在,Maven的依赖库查询顺序更改为:

  1. 在 Maven 本地资源库中搜索,如果没有找到,进入第 2 步,否则退出。
  2. 在 Maven 中央存储库搜索,如果没有找到,进入第 3 步,否则退出。
  3. 在java.net Maven的远程存储库搜索,如果没有找到,提示错误信息,否则退出。

在 Maven 依赖机制的帮助下自动下载所有必需的依赖库,并保持版本升级。(以下为示例)

假设你想使用 Log4j 作为项目的日志,传统方式:那么你需要访问网址,复制jar包到项目类路径,手动将其包含为项目依赖,如果Log4j版本升级则需要重复

那如果用Maven呢,当建立一个Maven的项目,pom.xml文件将被解析,如果看到 log4j 的 Maven 坐标,然后 Maven 按此顺序搜索 log4j 库:

<dependencies>
    <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.14</version>
    </dependency>
</dependencies>

中间三行就是log4j的坐标,全部是坐标生成的pom.xml文件,当 Maven 编译或构建,log4j 的 jar 会自动下载,并把它放到 Maven 本地存储库,如version被忽略,也会自动升级

由此可见,Maven 依赖库管理是一个非常好的工具,流程自动化使工作更为便捷。

(如何找到 Maven 坐标?访问 Maven 中心储存库,搜索下载您想要的jar。)

2. 使用Maven创建JAVA项目

使用 mvn archetype:generate + maven-archetype-quickstart 模板, 以下项目的目录结构被创建。

NumberGenerator
   |-src
   |---main
   |-----java
   |-------com
   |---------yiibai   
   |-----------App.java
   |---test|-----java
   |-------com
   |---------yiibai
   |-----------AppTest.java
   |-pom.xml

很简单的,所有的源代码放在文件夹 /src/main/java/, 所有的单元测试代码放入 /src/test/java/.

附加的一个标准的 pom.xml 被生成。这个POM文件类似于 Ant build.xml 文件,它描述了整个项目的信息,一切从目录结构,项目的插件,项目依赖,如何构建这个项目等

3. POM.XML

POM代表项目对象模型。它是 Maven 中工作的基本单位,这是一个 XML 文件。它始终保存在该项目基本目录中的 pom.xml 文件。
POM 包含的项目是使用 Maven 来构建的,它用来包含各种配置信息。
POM 也包含了目标和插件。在执行任务或目标时,Maven 会使用当前目录中的 POM。它读取POM得到所需要的配置信息,然后执行目标。部分的配置可以在 POM 使用如下:

    • project dependencies
    • plugins
    • goals
    • build profiles
    • project version
    • developers
    • mailing list

要注意的是,每个项目只有一个POM文件。

  • 所有的 POM 文件要项目元素必须有三个必填字段: groupIdartifactIdversion
  • 在库中的项目符号是:groupId:artifactId:version
  • pom.xml 的根元素是 project,它有三个主要的子节点。

4 .mvn 命令

1. 在基于Maven的项目中,很多缓存输出在“target”文件夹中。如果想建立项目部署,必须确保清理所有缓存的输出,从面能够随时获得最新的部署。

要清理项目缓存的输出,发出以下命令:

mvn clean

当“mvn clean”执行,在“target”文件夹中的一切都将被删除。

要部署您的项目进行生产,它总是建议使用 “mvn clean package“, 以确保始终获得最新的部署。
 

2 .要通过Maven运行单元测试,发出此命令:

mvn test

这会在你的项目中运行整个单元测试。

------

根据易百教程记录

猜你喜欢

转载自www.cnblogs.com/zhuwf/p/9287865.html