Maven简单理解和介绍

前言

本文主要面向Maven的初学者,介绍了何为Maven以及Maven的简单用法。更加详细的用法可以查看文章底部的链接。

1 Maven简介

1.1 何为Maven

Maven是Apache组织开发的一个开源的跨平台的项目管理工具,主要服务基于java平台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷模式,Maven都能大显身手。

1.1 为什么使用Maven

我们在软件开发的过程中会发现,除了编写源代码,我们每天有相当一部分时间花在编译,运行单元测试,生成文档,打包和部署等琐碎且不起眼的工作上,这就是构建。如果我们手工这样做,那时间成本太高了,因此大家开始用软件的方法让这些工作自动化。Maven的用途之一就是用于构建,它是一个强大的构建工具,可以帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。我们不用一遍一遍的输入命令,一次次点击鼠标。我们只要用Maven配置好项目,然后输入简单的命令(如mvn clean install),Maven会帮我们处理那些繁琐的任务。除此之外,Maven还有一个优点,在Maven之前,不同项目可能有不同的构建方式,但是有了Maven之后,所有项目的构建命令都是简单一致的,这能帮助我们标准化构建过程,避免了不必要的学习成本,有利于项目团队的标准化。

Maven除了是一个构建工具,还是一个依赖管理工具和项目信息管理工具。它提供了中央仓库,能帮我们自动下载构件。在现在的软件发开过程中,不可避免会用到第三方的开源类库,这些类库都可以通过依赖的方式引入到项目中。随着依赖的增多,版本不一致、版本冲突、依赖臃肿的方式接踵而来。手动解决这些问题是十分麻烦和枯燥的,幸运的是Maven能通过一个坐标系统准确的定位每一个构件,让类库变得更有秩序。

Maven还有很多优点,更多详细信息可以参考文章底部的链接。

 

2 Maven的安装和配置(只包括windows的安装)

2.1 检查JDK安装

在windows命令行中输入%JAVA_HOME%和java -version,检查环境变量JAVA_HOME是否指向正确的JDK目录,以及安装的JDK版本。

2.2 安装和配置Maven

到Maven官网(http://maven.apache.org/download.cgi)下载Maven的安装包,并将压缩包解压到目录中(我的Maven安装目录是D:\maven\apache-maven-3.5.4),接着将Maven安装配置到系统环境中。方法类似JDK的环境配置,创建一个变量名为%M2_HOME%,变量值为Maven的安装目录。再到path的变量,在变量值末尾加入%M2_HOME%\bin。至此,环境变量就设置完成了。可以在命令行输入echo %M2_HOME%和mvn -v检测安装配置是否成功。

3 Maven入门

到现在为止,我们可以开始使用Maven了,在此之前,我们要先创建一个Maven项目(具体流程可以参考:https://blog.csdn.net/chenzz2560/article/details/83270232

3.1 编写POM

Maven的核心文件是pom.xml,POM定义了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

<?xml version="1.0" encoding="UTF-8"?>

<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>aaa</groupId>
  <artifactId>aaa</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>projectName</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.7.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.20.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

第一行是XML头,指定了该xml文件的版本和编码方式。接着是project元素,这是所有pom.xml的根元素,声明了一些POM相关的命名空间及xsd元素,虽然这些属性不是必须的,但是用这些属性能让第三方工具帮助我们快速编译POM。

根元素下的第一个子元素modelVersion只动了当前POM模型的版本,对于Maven2及Maven3来说,只能是4.0.0.

这段代码中最重要的是包含groupId,artifactId和version的三行。这三个元素定义了一个项目的基本坐标。在Maven中,任何的jar,pom,或者war都是以基于这些基本坐标来区分的。

 

https://download.csdn.net/download/chenzz2560/10576310

猜你喜欢

转载自blog.csdn.net/chenzz2560/article/details/83893149