zoukankan      html  css  js  c++  java
  • 什么是maven?

    什么是maven?

    介绍

    maven,意第绪语的意思是知识的积累,最初是为了简化雅加达涡轮机项目中的构建过程。有几个项目,每个项目都有自己的Ant构建文件,它们都略有不同,JAR被检入到CVS中。我们希望有一种标准的方法来构建项目,对项目的组成有一个清晰的定义,一种发布项目信息的简单方法,以及在多个项目中共享JAR的方法。
    其结果是一个工具,现在可以用来构建和管理任何基于Java的项目。我们希望我们已经创建了一些东西,使Java开发人员的日常工作更容易,并且通常有助于理解任何基于Java的项目。

    Maven的目标

    Maven的主要目标是让开发人员在最短的时间内理解开发工作的完整状态。为了实现这一目标,Maven试图解决以下几个方面的问题:

    • 简化建造过程
    • 提供统一的建造系统
    • 提供优质项目信息
    • 提供最佳实践开发指南
    • 允许透明地迁移到新功能

    简化构建过程

    虽然使用maven并不能消除对底层机制的了解,但maven确实提供了很多细节保护。

    提供统一的构建系统

    Maven允许项目使用其项目对象模型(POM)和一组由所有使用Maven的项目共享的插件进行构建,从而提供统一的构建系统。一旦你熟悉了一个Maven项目是如何构建的,你就会自动知道所有Maven项目是如何构建的,从而在尝试浏览许多项目时节省了你大量的时间。

    提供优质工程信息

    Maven提供了大量有用的项目信息,这些信息部分来自POM,部分来自项目源。例如,Maven可以提供:

    • 直接从源代码管理创建的变更日志文件
    • 交叉引用源
    • 邮件列表
    • 依赖关系列表
    • 包括覆盖范围在内的单元测试报告
    • 随着Maven的改进,所提供的信息集将得到改进,所有这些对Maven的用户都是透明的。
    • 其他产品也可以提供Maven插件,允许他们的一组项目信息和Maven提供的一些标准信息一起使用,这些信息仍然基于POM。

    为最佳实践开发提供指导方针

    Maven的目标是为最佳实践开发收集当前的原则,并使向这个方向指导项目变得容易。
    例如,单元测试的规范、执行和报告是使用maven的正常构建周期的一部分。当前的单元测试最佳实践用作指导原则:

    • 将测试源代码保存在单独但并行的源代码树中
    • 使用测试用例命名约定来定位和执行测试
    • 让测试用例设置其环境,而不是依赖于定制测试准备的构建。
    • Maven还致力于协助项目工作流程,如发布和问题管理。
    • Maven还建议了一些关于如何布局项目目录结构的指导原则,这样一旦您了解了布局,就可以轻松地导航使用Maven和相同默认值的任何其他项目。

    允许透明迁移到新功能

    Maven为Maven客户机更新安装提供了一种简单的方法,这样他们就可以利用对Maven本身所做的任何更改。
    由于这个原因,从第三方或Maven本身安装新的或更新的插件变得微不足道。

    Maven不是什么?

    关于Maven,您可能听说过以下一些事情:

    • Maven是一个网站和文档工具
    • Maven扩展了Ant,允许您下载依赖项
    • maven是一组可重用的Ant脚本

    当Maven做这些事情时,你可以在上面的“什么是Maven”中读到。“第节,这些并不是Maven的唯一特性,其目标也非常不同。
    Maven确实鼓励最佳实践,但我们认识到,出于历史原因,某些项目可能不符合这些理想。虽然Maven的设计是灵活的,但在某种程度上,在这些情况下,以及不同项目的需求下,它不能在不损害目标完整性的情况下满足每一种情况。
    如果您决定使用Maven,并且有一个不寻常的构建结构,您不能重新组织它,那么您可能必须忘记一些特性或Maven的使用。

  • 相关阅读:
    用Apache Kafka构建流数据平台
    kafka与传统的消息中间件对比
    Azkaban简介和使用
    kettle初探
    less命令
    spring扩展点之二:spring中关于bean初始化、销毁等使用汇总,ApplicationContextAware将ApplicationContext注入
    Spring 注释标签@Resource @Autowired 和@Inject的区别
    【MyEclipse 2015】 逆向破解实录系列【2】(纯研究)
    HDOJ 5073 Galaxy 数学 贪心
    windows 8.0上eclipse 4.4.0 配置centos 6.5 上的hadoop2.2.0开发环境
  • 原文地址:https://www.cnblogs.com/crelle/p/10333533.html
Copyright © 2011-2022 走看看