下个项目马上要从antx上转移到maven上了,赶紧补补maven的知识。
在讲为什么使用maven之前我想说一下,antx,很多人知道ant,其实antx是阿里的牛人自己搞的一套基于ant扩展的在某些方面类似于mavnen的工具,我们甚至有eclipse的antx插件,可想而知antx在阿里的项目管理中的重要地位。它有很多优秀之处:
1. 可以比较好的支持第二方库
2. 支持项目之间的依赖和继承
3. antx可以用jelly来写插件
4. car包的支持,这里简单介绍下car包:
car是war包的一种中间格式,在打包的时候包含vm页面,webx.xml,classes等资源,但是没有包含
WEB-INF/lib,一个war包能包含多个car 包,在war包打包的时候,能够把web工程依赖的car中的jar
包,包括传递依赖的jar包,一起合并到WEB-INF/lib下
5. auto config: auto-config.xml配置项目中需要被替换的资源
那我们为什么还需要引入maven呢?
先说一下Antx在存在哪些问题:
1. Antx第三方库的管理比较复杂,如果某个项目需要一个新的jar包或者新版本的jar包,则需要走一个严格申请流程,并且需要自己提交相关的jar包
2. Antx对jar包的版本控制,changelist等没有工具上的支持,导致很多项目都是1.0-SNAPSHOT从头用到尾,导致包版本比较不好控制。
3. Antx对SCM打包部署的支持不是很强。
4. Antx在于IDE的兼容性上存在问题,为了让eclipse支持antx,我们需要单独写一个antx插件来让eclipse支持antx,对于其他的一些比较好的IDE比如Intellij IDEA,是不支持antx的。
5. 现在IDE很多都有一键式DEBUG的功能,包括集成对应用服务器的支持,antx在这方面存在不足。
Maven能解决这些问题么,还有更好的优势么, 答案是YES
1. Maven的库是由开源组织维护,不需要我们再花精力去管第三方库,即使自己维护,也比较方便。
2. Maven对jar包的版本管理有工具上的支持,比如将Release版本和Snapshot版本区分开,有利于SCM管理。
3. Maven是标准,用过的人多,不需要额外培训。
4. Maven的plugin比较多,可以有更多功能,Maven现有体系比较开放,采用的技术相对比较通用和成熟,plugin的机制也可以便于我们扩展更多功能。
5. Maven的库下载是即用即下,不需要实现全部down下来。Maven的插件也是自动升级,可以方便的
我们扩展新功能。
6. 可以很方便的与eclipse, IDEA这样的主流的IDE集成
7. 仓库管理器:它的出现有两个目的:首先它的角色是一个高度可配置的介于你的组织与公开Maven仓库之间的代理,其次它为你的组织提供了一个可部署你组织内部生成的构件(第二方库)的地方。
8. 版本管理功能,这里的版本管理不是指第三方库的版本管理,而是项目的版本管理
9. 站点功能:它的出现让我们可以对项目的状态一目了然,可以自动的把项目的状态和各种报表以站点的形式发布到内部网或者外部网,可以随时随地查看项目状态。 有很多中报表可以选择,包括,doc生成,代码规范的检查,自动bug检查,单元测试报表,单元测试的代码覆盖率报表
分享到:
相关推荐
maven2搭建hibernate+spring+struts2项目
Maven2在Maven1的优势基础之上,又向前迈进了一大步。它提供的这些新特性大大地缩短了开发管理中的工作量,使得开发人员将精力集中在实际的业务问题上。而且这些新特性对于简化使用,普及最佳实践,也起到了积极的...
本文将介绍 Maven 的基本概念、核心功能和优势,以及它在项目开发中的重要作用。 第一部分:Maven 的基本概念 解释 Maven 的基本概念,包括项目对象模型(POM)、坐标和仓库等。介绍如何使用 POM 文件来描述项目的...
用maven,我们可以方便统一的进行jar包管理,jar包版本升级,快速项目构建以及分模块开发等相关功能。maven使用得好,项目开发速度就会成倍的提升。总之,项目越大,越能体现maven的优势。
NULL 博文链接:https://yansxjl.iteye.com/blog/2333900
博文链接:https://juvenshun.iteye.com/blog/249189
maven私服apache-archiva-2.2.3-bin.tar.gz,相对于其它maven私服的优势在于内存占用小,只支持maven仓库,不支持其它仓库
最大的优势之一是它提供了开发和/或使用插件的可能性。 maven 中有一组相互依赖(可定制)的指令,它们在项目组装周期的特定阶段被触发。 它们被称为阶段。 对于每个阶段,可以关联多个以目标名称已知的子指令。 ...
与相比,它的主要优势在于,即使修改了构建文件(即pom文件),它也可以还原缓存。 它通过在Git历史记录中查找构建文件更改来轻松实现。 优点: 更快,更可预测的构建时间 工件存储上的负载大大减少 即插即用:...
在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器数量的增加,Jenkins的优势就会凸显出来,可以很好的提高效率,减少很多人工操作。现在很多公司的Java项目开发都是使用Git或者SVN管理代码...
该项目充分利用了现代软件开发与深度学习技术的优势,实现了对图像数据的深度学习处理和分析,具有广泛的应用前景和实践价值。 该项目以SpringBoot作为后端开发框架,提供了高效、稳定的Web服务。通过Maven的依赖...
Druid在监控、可扩展性、稳定性和性能方面都有明显的优势 C 安全权限框架shiro ; Shiro 是一个用 Java 语言实现的框架,通过一个简单易用的 API 提供身份验证和授权,更安全,更可靠 D ehcache 分布式缓存; 是一个纯...
Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run Anywhere): Java的代码可以在不同的平台上运行,只需编写一次代码,就可以在任何支持Java的设备上执行。这得益于Java虚拟机(JVM),它充当了...
Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run Anywhere): Java的代码可以在不同的平台上运行,只需编写一次代码,就可以在任何支持Java的设备上执行。这得益于Java虚拟机(JVM),它充当了...
Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run Anywhere): Java的代码可以在不同的平台上运行,只需编写一次代码,就可以在任何支持Java的设备上执行。这得益于Java虚拟机(JVM),它充当了...
系统优势: 全DIV+CSS模板,多浏览器适应,完美兼容IE6-IE8,以及Firefox Opera 等符合标准的浏览器,模板样式集中在一个CSS文件中,内容与样 式完全分离,方便网站设计人员开发模板与管理。系统较为安全,以设计...
基于园区业务,深度挖掘流程与系统的关键结合点,发挥互联网的优势,系统主要实现园区的资产管理,企业服务及档案管理,园区的活动及商城的搭建。...项目管理工具: Maven 3.3+ 工具类:Hutool 5.5.1
Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run Anywhere): Java的代码可以在不同的平台上运行,只需编写一次代码,就可以在任何支持Java的设备上执行。这得益于Java虚拟机(JVM),它充当了...
【主要特点和优势】: 灵活性和便利性:学生和考生可以通过互联网随时随地参加考试,不再受限于特定的地点和时间。 自动化管理:系统能够自动管理考试安排、考生信息、考试成绩等数据。 安全性:在线考试系统通常...
基于园区业务,深度挖掘流程与系统的关键结合点,发挥互联网的优势,系统主要实现园区的资产管理,企业服务及档案管理...项目管理工具: Maven 3.3+ 工具类:Hutool 5.5.1 体验地址 体验地址(商业版):http://demo.met