Maven 对约定优于配置的应用不仅仅是简单的目录位置,Maven 的核心插件使用了一组通用的约定,以用来编译源代码,打包可分发的构件,生成 web 站点,还有许多其他的过程。 Maven 的力量来自它的"武断",它有一个定义好的生命周期和一组知道如何构建和装配软件的通用插件。如果你循这些约定,Maven 只需要几乎为零的工作——仅仅是将你的源代码放到正确的目录,Maven 将会帮你处理剩下的事情。使用“遵循约定优于配置”系统的一个副作用是用户可能会觉得他们被强迫使用一种特殊的方法。 当然 Maven 有一些核心观点不应该被怀疑,但是其实很多默认行为还是可配置的。 例如项目源码的资源文件的位置可以被自定义,JAR 文件的名字可以被自定义,在开发自定义插件的时候,几乎任何行为可以被裁剪以满足你特定的环境需求。如果你不想遵循约定,Maven 也会允许你自定义默认值来适应你的需求。
Maven 的核心其实不做什么实际的事情,除了解析一些 XML 文档,管理生命周期与插件之外,它什么也不懂。Maven 被设计成将主要的职责委派给一组 Maven 插件,这些插件可以影响 Maven 生命周期,提供对目标的访问。绝大多数 Maven 的动作发生于Maven 插件的目标,如编译源码,打包二进制代码,发布站点和其它构建任务。你从Apache 下载的 Maven 不知道如何打包 WAR 文件,也不知道如何运行单元测试,Maven大部分的智能是由插件实现的,而插件从 Maven 仓库获得。事实上,第一次你用全新的 Maven 安装运行诸如 mvn install 命令的时候,它会从中央 Maven 仓库下载大部分核心 Maven 插件。这不仅仅是一个最小化 Maven 分发包大小的技巧,这种方式更能让你升级插件以给你项目的构建提高能力。Maven 从远程仓库获取依赖和插件的这一事实允许了构建逻辑的全局性重用。
两者之间的比较:
maven搭建工程很快,不需要特殊外挂什么的,直接就可以上手工作;而ant起步就比较麻烦,需要写一大堆东西。也就是说,maven预设了一些方便的功能,而ant只能自己写。
maven要想修改默认设定比较麻烦,ant全都在build.xml里,创建的时候虽然工作量大,但修改起来就比较方便。
maven对于第三方库文件支持比较好,自动下载存储,还能添加到IDE的工作路径里,对于库文件的管理和团队开发帮助都很大。这个有用的功能导致了工程的移植特别方便,不用进行特殊配置,只要运行maven就可以自动配置好工程的开发环境;ant在这方面没发现有什么特长,工程移植到其他电脑上时配置和调试很麻烦。
maven外挂丰富,降低工作繁重程度;ant还是基于手写。比如maven和ant都有自动封装打包的功能,不过maven有许多现成的外挂,添加进pom.xml就可以使用,方便,相比之下ant还是手工劳动程度比较大。
maven和ant学习起来都有一个过程,不过ant比maven直观些,毕竟XML一看就能明白,而maven的功能都是基于外挂,所以不太好理解,不过一旦理解maven的原理之后也很容易上手。
Ant和Maven的选择不是一成不变的,比如你现在的构建生命周期需要高度可自定义,则Maven的固定生命周期就不太适用。
分享到:
相关推荐
《Maven Ant Tasks 2.1.3:构建与集成利器》 在软件开发领域,Maven 和 Ant 是两种广泛使用的构建工具。Maven 以其强大的依赖管理和项目生命周期管理功能著称,而 Ant 则以其灵活性和可定制性受到开发者青睐。然而...
还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 maven-ant-tasks.jar
Maven 与 Ant 的奇妙整合 Maven 和 Ant 是两种常见的自动化构建工具,它们都有其独特的优点和缺点。在本文中,我们将探讨如何将 Maven 和 Ant 整合,以充分发挥两者的优势。 一、Maven 介绍 Maven 是一款基于项目...
The Mavent Ant Tasks allow several of Maven's artifact handling features to be used from within an Ant build. These include: Dependency management - including transitive dependencies, scope ...
与Ant相比,Maven通过预定义的生命周期和约定优于配置的原则,简化了项目的构建过程。Maven的依赖管理系统能自动解决库版本冲突,而其插件系统则允许扩展以完成特定的任务。 4. **Maven2构建**: Maven2的构建过程...
maven下通用的ant配置文件,只要0积分。只需修改11行末尾的target/自己的工程名即可。
与Ant相比,Maven更加自动化,依赖管理更为强大。Apache-maven-3.0.5-bin.zip是Maven的二进制包,解压后可以直接使用。 将这三个工具结合使用,可以高效地构建和管理使用Thrift的项目。例如,你可以使用Ant来定义...
"Maven-ant-tasks"是一个Java库,提供了Ant任务,这些任务可以与Maven交互,如执行Maven目标、解析POM(Project Object Model)文件、处理依赖关系等。这使得开发者能够在Ant构建脚本中使用Maven的特性,如自动下载...
ant学习指导文档 maven配置 maven常见问题问答 对于初学或想深入了解maven的童鞋以指导
本文将重点比较Maven和Ant两种流行的构建工具,分析它们的特点、优势以及应用场景。 #### Maven与Ant的基本介绍 1. **Apache Ant**: - **定义**:Ant是一款用Java编写的开源构建工具。 - **特点**:基于XML配置...
Apache Tomcat、Maven 和 Ant 是Java开发和部署中不可或缺的工具。让我们分别详细了解一下这三个重要组件及其在Java生态系统中的作用。 Apache Tomcat是一个开源的Servlet容器,它实现了Java Servlet和JavaServer ...
1.11 Maven Ant之间的比较 1.12 详解MANIFEST.MF文件 1.13 Maven入门--概念与实例 1.14 Subversion 1.15 jar war ear区别 1.16 如何在Eclipse中调试JBoss应用 1.17 JBoss 5.0 安装与配置详解 1.18 JBOSS安装...
The Mavent Ant Tasks allow several of Maven's artifact handling features to be used from within an Ant build. These include: Dependency management - including transitive dependencies, scope ...
【标题】 "jbos seam maven ant jdk" 涉及的关键技术点主要涵盖了四个核心领域:JBoss Seam、Maven、Ant以及Java Development Kit(JDK)。这些技术在Java开发环境中扮演着至关重要的角色,特别是对于企业级应用的...
这个主题主要围绕 Maven 插件的使用、其与 SCM(版本控制系统)的集成以及如何利用 Maven 插件与 Ant 集成来进行项目管理与构建。 首先,让我们深入了解一下 Maven 插件。Maven 插件是 Maven 构建生命周期的一部分...
【Ant与Cobertura集成】 为了将Cobertura集成到Ant构建过程中,需要在build.xml中添加Cobertura任务。这包括初始化Cobertura数据文件,运行测试并记录覆盖率信息,最后生成覆盖率报告。Cobertura提供的Ant任务如...
《Ant 1.6.5:Java构建工具的里程碑》 Apache Ant,简称为Ant,是Java社区中广泛使用的自动化构建工具,它以其XML为基础的构建文件格式和强大的任务库而闻名。Ant 1.6.5是这个工具的一个重要版本,它在Ant的发展...
在实际开发中,Apache Ant常与Maven、Gradle等其他构建工具一起使用,虽然它们有各自的优点和适用场景,但Ant以其高度的定制性和灵活性受到很多开发者的青睐。在部署、测试、打包等环节,Ant都扮演着重要角色。通过...