第一章、Maven简介

一、Maven是什么,以及它有什么用途?

1. Maven是什么?

Maven是Apache的一个开源项目,是一款优秀的跨平台的构建工具,Maven是声明式的,项目构建过程和过程各个阶段所需的工作都由插件实现,并且大部分插件都是现成的。开发者只需要声明项目的基本元素,Maven就执行内置的、完整的构建过程。同时还是一个依赖管理工具项目信息管理工具

2. Maven用途

Maven能够标准化、以及抽象构建过程,主要服务基于Java平台的项目构建、依赖管理和项目信息管理(如项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址)。它能够实现自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。

常规的项目过程:

清理——编译——测试——报告——打包——部署

传统项目构建的弊端:

  • 手动拷贝jar包
  • 手动清理
  • 手动编译
  • 手动测试
  • 手动打包
  • 各个节点的工作都相互独立,难以一步完成
  • 每个人的IDE配置不同,容易出现本地代码换个地方编译出错

使用Maven:

  • 拥有约定,知道你的代码在哪里,放到哪里去。
  • 拥有一个生命周期,例如执行mvn install就可以自动执行编译、测试、打包等构建过程。
  • 只需要定义一个pom.xml,然后把源代码放到默认的目录,Maven会替你处理其他事情。
  • 拥有依赖管理、仓库管理。

二、Maven与其他构建工具的对比

1. 通过IDE构建

IDE依赖大量的手工操作。编译、测试、代码生成等工作都是相互独立的,很难一键完成所有工作,低效易出错,且难以在项目中统一IDE配置。

2. Make

Make是最早的构建工具,其由一个名为Makefile的脚本文件驱动,该文件使用Make自定义的语法格式。其基本组成为一系列规则(Rules),而每一条规则又包括(Target)、依赖(Prerequisite)和命令(Command)。Makefile的基本结构如下:

TARGET...: PREREQUISITE...
COMMAND
...
...

Make通过一系列目标和依赖将整个构建过程串联起来,同时利用本地命令完成每个目标的实际行为,它可以利用所有系统的本地命令(尤其是Unix/Linux),帮助其快速高效地完成任务。也正是如此,导致其不能实现跨平台特性,且Makefile的语法不友好存在较多问题,这些都是Make被淘汰的主要原因。

3. Ant

Ant最早被用来构建Tomcat,Ant可以被看做是Java版的Make,且是跨平台的。Ant使用XML构建脚本build.xml,如下所示:

<?xml version = "1.0"?>
<project name = "Hello" default = "compile">
    <target name = "compile" description = "compile the java source code to class files">
        <mkdir dir = "classes"/>
        <javac srcdir = "." destdir = "classes"/>
    </target>
    <target name = "jar" depends = "compile" description = "create a Jar file">
        <jar destfile = "hello.jar">
            <fileset dir = "classes" includes = "* * /*.class"/>
            <manifest>
                <attribute name = "Main-Class" value = "HelloProgram"/>
            </manifest>
        </jar>
    </target>
</project>

build.xml的基本结构也是目标(target)、依赖(depends),以及实现目标的任务。Ant有大量内置的用Java实现的任务,保证其跨平台的特质,同时Ant也有特殊的任务execl来执行本地命令。

但和Make一样,Ant也是过程式的,开发者显式地指定每一个目标,以及完成该目标所需要执行地任务。针对每一个项目编写这一过程会存在很大的重复劳动。且Ant没有依赖管理功能,很长一段时间都是通过手工管理依赖,而如今我们可以通过借助lvy帮助Ant管理依赖。

通过了解和对比以往的构建工具,我们对Maven的概念、用途有了清晰的认识。Maven除了能够高效构建项目、管理依赖、管理项目信息并拥有一个核心中央仓库外,还能极大地与极限编程结合,实现一些核心价值。

总结:本章节作为对Maven的一个入门简介,更多相关Maven学习内容及实战,请其他后续章节,未完待续……

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值