Maven知识点总结

1、Maven简介

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

概括地说,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。

2、Maven资源库

2.1 Maven本地资源库

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

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

  • Unix/Mac OS X 系统下: ~/.m2
  • Windows 系统下: C:\Documents and Settings\{your-username}\.m2

e497391d7ba08dc3801712e0c566e3b3cb6.jpg

2.2、Maven中央存储库

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

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

现在中央存储库被重定向到了 http://search.maven.org/ ,这里可以搜索相应的资源进行下载。

2.3、Maven远程存储库

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

如果项目依赖的jar包等不在中央存储库而在某个远程存储库,需要在pom.xml中指定该库以告诉Maven去相应远程库中搜索。

<repositories>
    <repository>
        <id>java.net</id>
        <url>https://maven.java.net/content/repositories/public/</url>
    </repository>
</repositories>

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

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

3、Maven POM

POM代表项目对象模型。它是 Maven 中工作的基本单位,这是一个 XML 文件。
部分可以在 POM 使用的配置如下:

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

每个项目只有一个POM文件。

  • 所有的 POM 文件要项目元素必须有三个必填字段:groupId, artifactId, version
  • 在库中的项目符号是:groupId:artifactId:version
  • pom.xml 的根元素是project,它有三个主要的子节点。
节点描述
groupId这是项目组的编号,这在组织或项目中通常是独一无二的。
artifactId这是项目的ID。这通常是项目的名称。 
version这是项目的版本。

示例:

<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.helloworld.project-group</groupId>
   <artifactId>project</artifactId>
   <version>1.0</version>
<project>

4、Maven依赖机制

我们知道,在传统方式下如果要引入一个jar包,过程是:

下载jar包 -> 将jar包复制到项目类路径下 -> 将其添加到项目依赖

使用Maven,只需要将需要的jar包配置到pom.xml中。当Maven编译或构建时相应的jar包会自动下载,并把它放到本地仓库。所有的jar包由Maven管理。

问:如何确定想要的jar包的groupId、artifactId和version?

答:mvnrepository.com 这个网站可以获取需要的jar包的配置。

5、Maven插件

Maven 是一个执行插件的框架,每一个任务实际上是由插件完成的。Maven 插件通常用于:

  • 创建 jar 文件
  • 创建 war 文件 
  • 编译代码文件
  • 进行代码单元测试
  • 创建项目文档
  • 创建项目报告

插件类型

Maven 提供以下两种类型插件:

类型描述
构建插件在生成过程中执行,并在 pom.xml 中的<build/> 元素进行配置
报告插件在网站生成期间执行,在 pom.xml 中的 <reporting/> 元素进行配置

示例(在项目中引入Tomcat插件):

<plugins>
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <path>/</path>
        </configuration>
    </plugin>
</plugins>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值