Maven 概念介绍




概括来讲,Maven 2 能够:
    * 理解项目通常是如何构建的。
    * 利用其内嵌的项目知识简化和便利项目构建。
    * 利用其内嵌的项目知识来帮助用户理解复杂的项目结构和构建过程中潜在的变数。
    * 设计并实现一个经证实的依赖项管理系统,该系统顺应了当今全球化和相互联系的项目团队的需求。
    * 利用其内部知识,针对简单项目提供简单的用户体验。
    * 对于高级用户来说相当灵活;针对特别的应用场景,可以覆盖其内嵌模型,也可以通过配置、部署元数据或创建自定义插件对其内嵌模型进行改写。
    * 全面扩展现有行为之外的场景细节。
    * 捕获新出现的最佳实践和各个用户社区间的经确认的共同性,并将它们纳入到 Maven 的内嵌项目知识中,从而不断地得到改进。

Maven 坐标
Maven 坐标是一组可以惟一标识工件的三元组值。坐标包含了下列三条信息:
    * 组 ID(groupId):代表制造该工件的实体或组织。例如,com.ibm.devworks 就是一个组 ID。
    * 工件 ID(artifactId):实际的工件的名称。例如,主体类名为 OpsImp 的项目也许会用 OpsImp 作为其工件 ID。
    * 版本(version):该工件的版本号。支持的格式为 mmm.nnn.bbb-qqqqqqq-dd ,其中, mmm 是主版本号, nnn 是次版本号, bbb 代表其 bug 修复水平。 qqqqq (限定词)或 dd (构建号)也能添加到版本号中,这两项是可选项。

<dependencies>
   <dependency>
      <groupId>com.ibm.devworks</groupId>
      <artifactId>OpsImp</artifactId>
      <version>1.0-SNAPSHOT</version>
   </dependency>
</dependencies>

插件是适应 Maven 的插件框架的软件模块。现在,可以使用 Java、Ant 或 Beanshell 来创建自定义插件。插件中的每个任务称作一个 mojo。有时,插件也被视为一套相关的 mojo。

Maven 和 Ant作为Java开发的利器,两者有很大不同

Ant 将提供了很多可以重用的task,例如 copy, move, delete 以及junit 单元测试Maven 则提供了很多可以重用的过程。我们可以把 Maven 看成是一个 "build container"这个容器可以让我们重用从一系列的项目中抽像出来的build过程。

使用过Ant的朋友都会有这样的体会吧。 Ant提供的task级别描述,我们可以通过想写shell一样一个Java项目的build过程来进行描述。我们可以写好一个build.xml 文件,来解决我们在Java程序运行编译过程中需要解决的classpath,以及相关参数的配置问题,只有是项目中的主要结构以及依赖的库不变,我们很少去修改build.xml。但是如果我们要开发一个新的项目即使原有项目的build.xml写的即使再好,其能够复用得模块还是比较少的。特别是对项目的结构进行修改后,想不修改build.xml都很困难。这是因为Ant 所提供的可重用的task粒度太小,虽然灵活性很强,但是我们需要纠缠很多细节的东西。

正如你所在使用Servlet 容器时,并没有告诉它如何去解包WAR文件,在你使用Maven 时,你也不需要告诉Maven 如何build你的项目。 Maven提供了一套抽象层用来分离项目的build 逻辑。许多人一开始就被Maven所提供的依赖管理(可以通过XML来描述项目所依赖的库的关系)打动,但是使用Maven的主要好处还是它能为提供一个标准的开发构架用来对多个项目进行管理。 依赖管理只是这个标准开发构架所提供的一个副产品。

如果想让Maven实现某个build过程,例如compile, test, install,我们可以通过写plugin的方式,很容易就实现build过程的复用。Maven可以为我们提供一个很舒适的build环境,我们不需要通过build.xml定义繁琐的build过程, 只需要告诉这些build过程的plugin,我现在的文件依赖的那些第三方库,我需要实现什么样的build功能,就足够了。那些繁琐的路径配置信息,以及复杂的第三方库下载设置,你通通不用考虑, Maven 以及它的plugin都帮你实现了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值