Maven 学习笔记(一)

什么是 maven?

  对于已经使用过 maven 的用户来说 maven 就是一个架构工具,使用它可以将代码构建成一个可发布的工具.当然也有人会说maven是一个项目管理的工具。当然各有各的说法,那么一个更正式的 Apache Maven 的定义: Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

如何理解一个项目的概念模型?

  Maven 维护了一个项目的模型,意味着不仅要将其源码编译成字节码文件,还需要包含软件开发的描述信心,为项目指定一个唯一的坐标。主要有以下特点:

  • 依赖管理:一个项目包含组标识符构件标识符版本的唯一的坐标定义的。因此在项目之间可以使用这些声明来添加依赖。
  • 远程仓库:和项目的依赖有关系,我们可以使用定义在项目对象模型(POM)中的坐标来创建 Maven 构件的仓库。
  • 全局性构建逻辑重用:在项目模型对象中我们可以引入很多的插件使其一起工作。
  • 工具的继承:对于很多的IDE都支持通过 maven 创建项目。

Maven VS Ant?

  Ant: 

    • Ant 约定一个项目的目录结构必须是什么样子的,但是你必须明确的告诉 Ant 哪里去找源代码,哪里放置输出。
    • Ant 是程序化的,你必须明确的告诉 Ant 做什么,什么时候做。
    • Ant 没有生命周期,你必须定义目标和目标之间的依赖。

  Mavne: 

    • Maven 是有一定的约定的,基于maven的项目,源码和测试代码是在规定的文件中的。
    • Maven 是声明式的,你一般只需要创建一个pom文件然后将源码放在指定的目录。maven就会为你做你需要做的事情。
    • Mavne 是有生命周期的,当你运行一个命令的时候,这条命令就会告诉maven要去做哪些事情知道这个命令执行完毕。  
posted @ 2018-04-09 23:27  brother_four  阅读(259)  评论(0编辑  收藏  举报