`

Maven实战(一) 之它是什么?

    博客分类:
  • JAVA
阅读更多

 

 

一.Maven ...  它是什么?(项目管理工具,构建工具,插件,生成站点,生命周期)

 

    如何回答这个问题要看你怎么看这个问题。 绝大部分Maven用户都称Maven是一个"构建工具":一个用来把源代码构建成可发布的构件的工具。 构建工程师和项目经理会说Maven是一个更复杂的东西:一个项目管理工具。那么区别是什么? 像Ant这样的构建工具仅仅是关注预处理,编译,打包,测试和分发。像 Maven 这样的一个项目管理工具提供了构建工具所提供功能的超集。 除了提供构建的功能,Maven还可以生成报告,生成Web站点,并且帮助推动工作团 队成员间的交流。

   一个更正式的 Apache Maven1 的定义: Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后 Maven 可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

 

 

二. 约定优于配置(注解优于配置)

 

    Maven 对约定优于配置的应用不仅仅是简单的目录位置,Maven 的核心插件使用了一组通用的约定,以用来编译源代码,打包可分发的构件,生成 web 站点,还有许多其他的过程。 Maven 的力量来自它的"武断",它有一个定义好的生命周期和一组知道如何构建和装配软件的通用插件。如果你遵循这些约定,Maven 只需要几乎为零的工作——仅仅是将你的源代码放到正确的目录,Maven 将会帮你处理剩下的事情。

 

 

三. 学会使用maven插件(插件体现能力)

    Maven 的核心其实不做什么实际的事情,除了解析一些 XML 文档,管理生命周期与插件之外,它什么也不懂。Maven 被设计成将主要的职责委派给一组 Maven 插件,这些插件可以影响 Maven 生命周期,提供对目标的访问。

    绝大多数 Maven 的动作发生于Maven 插件的目标,如编译源码,打包二进制代码,发布站点和其它构建任务。你从Apache 下载的 Maven 不知道如何打包 WAR 文件,也不知道如何运行单元测试,Maven大部分的智能是由插件实现的,而插件从 Maven 仓库获得。事实上,第一次你用全新的 Maven 安装运行诸如 mvn install 命令的时候,它会从中央 Maven 仓库下载大部分核心 Maven 插件。这不仅仅是一个最小化 Maven 分发包大小的技巧,这种方式更能让你升级插件以给你项目的构建提高能力。

 

  具体Maven常用插件如何使用可以参考网络资源 :http://blog.csdn.net/eg366/article/details/9398681

 

 

四. Maven赋予软件项目新的模型定义

 

    Maven 维护了一个项目的模型,你不仅仅需要把源码编译成字节码,你还需要开发软件项目的描述信息,为项目指定一组唯一的坐标。你要描述项目的的属性。项目的许可证是什么?谁开发这个项目,为这个项目做贡献?这个项目依赖于其它什么项目没有?Maven不仅仅是一个“构建工具”,它不仅仅是在类似于 make 和 Ant 的工具的基础上的改进,它是包含了一组关于软件项目和软件开发的语义规则的平台。这个基于每一个项目定义的模型实现了如下特征:

1.依赖管理

       由于项目是根据一个包含组标识符,构件标识符和版本的唯一的坐标定义的。项目间可以使用这些坐标来声明依赖。

2.远程仓库

       和项目依赖相关的,我们可以使用定义在项目对象模型(POM)中的坐标来创建Maven 构件的仓库。

3.全局性构建逻辑重用

       插件被编写成和项目模型对象(POM)一起工作,它们没有被设计成操作某一个已知位置的特定文件。一切都被抽象到模型中,插件配置和自定义行为都在模型中进行。

4.工具可移植性/集成

      像 Eclipse,NetBeans,和 InteliJ 这样的工具现在有共同的地方来找到项目的信息。在 Maven 出现之前,每个 IDE 都有不同的方法来存储实际上是自定义项目对象模型(POM)的信息。Maven 标准化了这种描述,而虽然每个 IDE 仍然继续维护它的自定义项目文件,但这些文件现在可以很容易的由模型生成。

5.便于搜索和过滤构件

      像 Nexus 这样的工具允许你使用存储在 POM 中的信息对仓库中的内容进行索引和搜索。

   Maven赋予软件项目新的模型定义

 

 

   

分享到:
评论

相关推荐

    Maven 实战(中文pdf)

    《Maven实战》是一本专为Java开发人员设计的指南,深入浅出地介绍了Maven这一强大的项目管理和构建工具。Maven是Apache软件基金会开发的一个开源项目,它以XML文件格式定义项目,能够自动化构建、依赖管理和项目信息...

    Maven 实战(361)_12804356.pdf

    Maven 实战(361)_12804356.pdf

    Maven实战 Maven实战Maven实战

    《Maven实战》一书设计了一个背景案例,后续章节围绕该案例展开,通过具体的项目构建实例,加深读者对Maven的理解和掌握。例如,如何使用Maven进行Web应用的构建、如何利用Hudson进行持续集成等。 #### 总结 Maven...

    maven 实战 所有源代码

    在`mvn_in_action_code`这个压缩包中,包含了"Maven实战"一书中的所有示例代码。通过对这些代码的分析和实践,读者可以更好地理解Maven的各个功能和用法。 总结,Maven通过规范化的项目结构、依赖管理和自动化构建...

    Maven 实战.pdf-完整版

    Maven是一种基于项目对象模型(POM)的项目管理工具,主要用于Java项目。它利用一个中央信息管理的...无论是对Maven初学者还是资深开发者,本书都能提供极大的帮助,被广泛认为是学习和应用Maven的最佳参考书籍之一。

    Maven实战.pdf

    Maven实战 好书 学习参考.pdf

    Maven实战 完整高清版

    非常好的一本maven书 Maven实战 完整高清版

    maven 详细教程 实战 例子 电子书

    ** Maven 详细教程 实战 例子 电子书 ** Maven 是一个强大的项目管理工具,广泛应用于Java开发领域。它简化了构建、依赖管理和项目生命周期的管理,使得开发者能够更专注于代码本身,而不是构建过程。本教程将深入...

    Maven 实战源码

    《Maven实战源码》是一本专为Java开发者设计的指南,旨在帮助初学者和有经验的开发者深入理解和掌握Maven这一强大的项目管理和构建工具。Maven不仅简化了项目的构建过程,还通过依赖管理和插件机制,使得软件开发...

    《Maven实战》源代码

    《Maven实战》一书是Java开发者深入了解和掌握Maven构建工具的重要参考资料。该书的源代码涵盖了多个章节,包括ch-17、ch-3、ch-7、ch-8、ch-5、ch-10、ch-18和ch-12等,这些章节的内容广泛且深入,涉及了Maven的...

    Maven实战pdf+源码

    Maven实战为许晓斌著。资源里面包括Maven实战pdf、程序所带源码。在eclipse开发时,需要下载m2e,下载地址http://download.eclipse.org/technology/m2e/releases/。eclipse 4.5 以上版本带的有Maven 插件,在下载m2e...

    《Maven实战》

    《Maven实战》 许晓斌

    Maven 实战(书签版),十分清晰强烈推荐

    Maven 实战(书签版) 影印版,影印规整,十分清晰,强烈推荐!

    《Maven实战》完整高清版.pdf

    《Maven实战》徐晓斌 完整高清版.pdf

    Maven实战Maven教程

    ### Maven实战Maven教程:深度解析与应用指南 #### Maven:构建工具的革命者 Maven,作为一款功能强大的自动化构建工具,自...随着Maven在Java生态中的地位日益稳固,掌握Maven已成为现代Java开发者的基本技能之一。

    Maven实战完整高清版

    项目管理,maven实战教程,提高对项目的管理和配置,改进项目效率

Global site tag (gtag.js) - Google Analytics