什么是 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要去做哪些事情知道这个命令执行完毕。  

最新文章

  1. ajax方法简单实现
  2. Hadoop学习(3)-- 安装1.x版本
  3. .Net操作.exe文件
  4. Dockerfile 指令
  5. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程07:UI》
  6. 问题-[Delphi]无法设置断点
  7. mysql5.5 对触发器,函数,存储引擎,事件进行主从复制情况.(转)
  8. Python Unittest 自动化单元测试框架Demo
  9. 黑马程序员:Java基础总结----类加载器
  10. css Loading 教程
  11. queue的入门
  12. maven入门(1-3)构建简单的maven项目
  13. 带三方登录(qq,微信,微博)
  14. JAVA函数的重载和重写
  15. Android Studio无线连调式android手机
  16. Asp.net Core认证和授权:JWT认证和授权
  17. 洗礼灵魂,修炼python(59)--爬虫篇—httplib模块
  18. ubuntu/debian ia-libs
  19. 【jersey】 spring 整合jersey 实现RESTful webservice
  20. Can't deserialize with binaryFormatter after changing namespace of class

热门文章

  1. (最小生成树) Building a Space Station -- POJ -- 2031
  2. excel如何设置自增序列
  3. 初探FFT(快速傅里叶变换)
  4. 使用工厂方法配置bean的两种方式
  5. Bad Day -- Daniel Powter
  6. 软件工程作业 - 实现WC功能(java)
  7. Linux SSH无密码登录
  8. asp.net mvc 在JS中跳转到其它controller/action
  9. linux系统编程之文件与IO(三):利用lseek()创建空洞文件
  10. Android开源库集合(控件)