第一部分:引言

   Maven是一款跨平台的项目管理工具,作为Apache组织的一个开源项目,主要服务于基于java平台的项目构建、依赖管理和项目信息管理

项目构建:编译、运行单元测试、生成文档、打包和部署等一些繁琐且毫不起眼的工作就是构建。而Maven就是一款优秀的构建工具,它不仅可以标准化构建步骤(在Maven之前,十个项目,可能会有十种构建方式;有了Maven之后,所有的构建命令都变得简单一致),还可以抽象项目构建的生命周期,实现整个项目构建的自动化操作。

项目依赖:Maven提供了一个非常好的项目依赖解决方案,通过坐标系统,定位到唯一的依赖包,并添加进项目,避免因为过多的通过手动添加依赖包而导致依赖包冗余,使项目变得臃肿。

项目信息管理:Maven还能管理原本分散在项目各个角落的项目信息,包括项目描述、开发者列表、版本控制系统的地址、许可证、缺陷管理系统的地址。这些微小的变化看起来很琐碎,却在不知不觉中节省大量寻找项目信息的时间。除了直接的项目信息,通过Maven自动生成的站点,以及一些已有的插件,我们还能够轻松的获取项目的文档、测试报告、静态分析报告、源码版本日志报告等非常有价值的项目信息。

第二部分:流行的项目构建工具

现阶段,java领域非常流行的项目构建工具。IDE、MAKE、ANT

IDE:当前比较主流的IDE有eclipse和NetBeans。它们提供了强大的文本编辑、调试甚至重构功能。然而IDE有其自身的缺陷:首先,IDE依赖大量的手工操作,项目编译、测试、代码生成等都是相互独立的,很难一键完成所有的工作,手工劳动不仅低效还容易出错;其次,很难在项目中统一所有的IDE配置,正因为如此,一个项目能成功在机器S上运行,却在机器Y上运行失败。所以,对于IDE我们应该合理看待它,应用它,不能过多的依赖它。

MAKE:MAKE是最早的构建工具,它有很多衍生实现,包括GNU MAKE、BSD MAKE还有Windows平台的Microsoft NMAKE。MAKE由一个名为makefile脚本文件驱动,该文件使用MAKE自己定义的语法格式。其基本组成部分为一系列自定义的规则(RULES),而每一条规则又包括目标、依赖和命令。MAKE通过一系列目标和依赖将构建过程串联起来,同时通过本地命令完成项目的实际行为,MAKE强大之处在于它能利用所有系统的本地命令,尤其是Linux/Unix系统,丰富的命令、强大的功能能帮助MAKE快速的完成所有工作。但是MAKE将自己和操作系统绑定在一起,很难实现跨平台操作,这对于java来讲,是非常的不友好,这也是MAKE非常重大的一个缺陷。

ANT:Another Neat Tool。Tomcat最早就是由它来构建。ANT可以看作是java版本的MAKE。相对于传统的MAKE,它可以实现跨平台,而且使用XML定义构建脚本。和MAKE一样,ANT也是过程式的,开发者显示的指定每一个目标,以及完成该目标所要执行的任务。针对每一个项目,开发者都要重新编写这一过程,这就意味着重复。ANT之前很长一段时间没有项目依赖的,而现在ANT可以借助Ivy进行管理依赖。

第三部分:回归命令才是王道

  Maven对于IDE的支持较差,bug多,而且不稳定,使用Maven最高效的方法永远是命令行,所以回归最原始的命令操作,才是王道!

Maven整理笔记の初步窥探的更多相关文章

  1. Maven整理笔记の生命周期和插件

    项目构建的生命周期,其实软件开发人员每天都在干这个事,即项目清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等,可以说几乎所有项目的构建都可以映射到这样一个生命周期上. Maven的插件 ...

  2. Maven整理笔记のMaven仓库

    Maven坐标和依赖是任何一个构件在Maven世界中的逻辑表示方式:而构件的物理表示方式是文件,Maven通过仓库来统一管理这些文件.  Maven仓库 在Maven的世界中,任何一个依赖.插件或者项 ...

  3. Maven整理笔记のMaven使用实践

    我们通过实践来补充Maven构建的生命周期. 第一步:配置POM 接着上一篇Maven使用,我们先创建一个名为helloworld的文件夹,在helloworld目录下创建pom.xml文件,pom. ...

  4. Maven整理笔记のMaven使用

    POM 就像Make的Makefile,Ant的build.xml一样,Maven项目的核心是pom.xml.POM(Project Object Model项目对象模型),定义了项目的基本信息,用于 ...

  5. Maven整理笔记の安装及配置

      第一部分:在Windows上安装Maven    检查JDK的安装 在安装Maven之前,首先确认你已经正确安装了JDK.Maven可以运行在JDK1.4及以上版本.先打开Windows命令,运行 ...

  6. canvas学习之API整理笔记(二)

    前面我整理过一篇文章canvas学习之API整理笔记(一),从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知 ...

  7. xmpp整理笔记:发送图片信息和声音信息

    图片和音频文件发送的基本思路就是: 先将图片转化成二进制文件,然后将二进制文件进行base64编码,编码后成字符串.在即将发送的message内添加一个子节点,节点的stringValue(节点的值) ...

  8. xmpp整理笔记:聊天信息的发送与显示

    任何一个信息的发送都需要关注两个部分,信息的发出,和信息在界面中的显示 往期回顾: xmpp整理笔记:环境的快速配置(附安装包)  http://www.cnblogs.com/dsxniubilit ...

  9. xmpp整理笔记:用户网络连接及好友的管理

    xmpp中的用户连接模块包括用户的上线与下线信息展现,用户登录,用户的注册: 好友模块包括好友的添加,好友的删除,好友列表的展示. 在xmpp中 负责数据传输的类是xmppStream,开发的过程中, ...

随机推荐

  1. 用Toast来增加调试效率的小技巧

    import android.content.Context; import android.widget.Toast; /** * Created by apple on 10/7/15. */ p ...

  2. Appium+python自动化29-toast消息(亲测 ok)

    本篇转自博客:上海-悠悠 前言 appium1.5以后的版本才支持toast定位,并且 'automationName'得设置为'Uiautomator2',才能捕获到. 一. Supported P ...

  3. PTA 说反话-加强版(20 分)(字符串处理)

    说反话-加强版(20 分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单词和若干空 ...

  4. shell脚本把昨天的txt打成tar包

    now=`date '+%Y-%m-%d %H:%M:%S'` echo ${now} yesterday1=`date -d yesterday +%Y-%m-%d` echo ${yestoday ...

  5. Node.js的原型继承函数util.inherits

    util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数.JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同.Jav ...

  6. java成神之——数值操作BigDecimal,BigInteger,Random,SecureRandom

    数值操作 数值新特性 包装类 浮点 BigDecimal BigInteger 数值本地化 随机数 假随机数 真随机数 播种 结语 数值操作 数值新特性 123_456 等价于 123456,增加可读 ...

  7. scss基本用法总结

    工作的时候天天用,面试的时候却没了思路,这就是懒得下场.多总结,多整理,才是成长得王道啊.最近换工作,把以前该整理得工作梳理一遍. 一.定义变量与引用 $color: #f00; $a-color: ...

  8. asp:GridView控件的使用

    使用asp:GridView显示一个统计的表格 cs样式: <style>        table.gridview_m        {            border-colla ...

  9. 分析比较多表查询中的IN与JOIN

    IN 是子查询的关键字,JOIN 是连接的关键字,项目开发中经常会使用到多表查询,而子查询与连接正是实现多表查询的重要途径.那两者是怎么运行的?IN与JOIN哪个更好?下面就来分析与比较. 现在有te ...

  10. 使用avalon实现SKU组合查询功能

    SKU(stock keeping unit库存量单位)组合查询是网上商场一个非常常用的功能.具体来说,一件商品会有许多型号,许多颜色,许多产地,许多码寸,而满足用户选中的这些条件的具体商品可能有库存 ...