Maven简介|学习笔记

简介: 快速学习Maven简介

开发者学堂课程【项目管理工具Maven学习:Maven简介】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/23



目录:

一、Maven简介

二、ANT

一、Maven介绍

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档项目管理工具软件。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。

由于Maven 的缺省构建规则有较高的可重用性,所以常常用两三行Maven 构建脚本就可以构建简单的项目。

由于Maven 的面向项目的方法,许多Apache Jakarta 项目发文时使用Maven,而且公司项目采用Maven 的比例在持续增长。

Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs

Maven 改变了我们工作方式!除了写代码本身!!

●什么是Maven

Maven这个词可以翻译为“专家”,“内行”。作为Apache 组织中的一个颇为成功的开源项目,Maven主要服务于基于java平台的项目构建,依赖管理和项目信息管理。 无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷开发,Maven都能大显身手。

●什么是构建

不管是否意识到,构建(build)是每一位程序员每天都在做的工作。早上来到公司,我们做的第一件事就是从源码库签出最新的代码,然后进行单元测试,如果发现失败的测试,会找相关的同事一起调试,修复错误代码。接着回到自己的工作上来,编写自己的单元测试及产品代码,会感激IDE随时报出的编译错误提示。

仔细总结一下,就会发现,除了编写源代码,每天有相当一部分时间花在了编译,运行单元测试,生成文档,打包和部署等繁琐且不起眼的工作上,这就是构建。如果现在还手工这样做,那成本也太高了,于是有人用软件的方法让这一系列工作完全自动化,使得软件的构建可以像全自动流水线一样,只需要一条简单的命令,所有繁琐的步骤都能够自动完成,很快就能得到最终结果。

Maven 的优势

1.跨平台

2服务于构建,它是一个导堂强大的构建工具,能多帮助自动化构建过程,从清理,编逢,测试到生成报告,再到打包和部罢。

3.标准化Maven能够帮助标准化构建过程。在Maven之前,十个项目可能有十种构建方式;有了Maven之后,所有项目的构建命令都是简单一至的,这极大地避免了不必要的学习成本,而且有利于促进项目团队的标准化。

4.封装构建过程一直在不停滴寻找避免重复的方法。设计的重复,编码的重复,文档的重复,当然还有构建的重复。Maven最大化地清除了构建的重复,抽象了构建的生命周期并且为绝大部分的构建任务提供了已实现的插件,我们不再需要定义过程。

5.依赖管理工具

在这个开源的年代里,几乎任何java应用都会借用一些第三方的开源类库,这些类库都可通过依赖的方式引入到项目中来。随着依赖的增多,版本不一致,版本冲突,依赖臃肿等问题都会接踵而至。手工解决这些问题是十分枯燥的,幸运的是Maven提供了一个优秀的解决方案,它通过一个坐标系统准确地定位每一个构件,也就是通过一组坐标Maven能够找到任何一个javi类库。Maven给这个类库世界引入了经纬,让他们变得有秩序,于是我们可以借助它来有序地管理依赖,轻松地解决那些繁杂的依赖问题。Maven为全世界的java开发者提供了一个免费的中央仓库,在其中机会可以找到任何的流行开源类库。

6项目规范化:使用Maven还能享受一个额外的好处,即Maven对干项目目录结构,测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置。

为什么使用Maven

1.组装ps和品牌ps2IDE不是万能的

A:IDE依赖大量的手工操作。编译,测试,代码生成等工作都是相互独立的,很难一键完成所有工作。手工劳动往往意味着低效,意味着容易出错。

B:很难在项目中统一所有的IDE配置,每个人都有自己的喜好。也正是由于这个原因,一个在机器A上面可以成功运行的任务,到了机器BIDE中可能就会失败。

被误解的Maven

1.Maven过于复杂

a)不要指望Maven十分简单,这几乎是不可能的。Maen是用来管理项目的,清理,编译,测试,打包,发布,以及一些自定义的过程本身就是一件复杂的事情

2.Maven对于IDE的支持差

3.缺乏文档

二、ANT

image.png

image.png

1Ant的概念:

当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,因此c语言中有make脚本来帮助这些工作的批量完成。

Java 中应用是平台无关性的,当然不会用平台相关的make脚本来完成这些批处理任务了,ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。

除了基于JAVA是平台无关的外,脚本的格式是基于XML的,比make脚本来说还要好维护一些。

相关文章
|
机器学习/深度学习 人工智能 安全
中国信通院联合金橙果科技等十七家单位发起人工智能大模型安全基准测试
2024年2月20日下午,AIIA“SafetyAI Bench”(人工智能大模型安全基准测试)线上研讨会成功举办。来自中国信息通信研究院(以下简称“中国信通院”)、厦门大学、北京大学、北京交通大学、360、百度、蚂蚁集团、VIVO、西门​子、小鹏汽车、马上消费、浪潮科技、海信视像、交通银行、商汤科技、邮储银行、普华永道、科大讯飞、金橙果科技、万商天勤律所、中兴通讯、博特智能、开源网安、云天励飞等单位40余位科研机构专家及企业代表参加了本次会议。
|
传感器 机器学习/深度学习 人工智能
AI在智能制造中的革新应用与未来展望
【10月更文挑战第10天】AI在智能制造中的革新应用与未来展望
|
Ubuntu API Python
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
438 1
|
监控 安全 物联网
|
弹性计算 固态存储 数据可视化
阿里云服务器一年价格2023最新价格明细来了
阿里云服务器一年价格2023最新价格明细来了。阿里云服务器分为云服务器ECS和轻量应用服务器,云服务器s6公网带宽可选1M到5M,系统盘40G起可选高效云盘、SSD云盘或ESSD云盘,1核1G配置19.17元3个月、306.72元一年,1核2G优惠价26.46元3个月、423.36元一年,2核4G配置42.66元3个月,2核8G配置58.86元3个月,4核8G 75.06元3个月,8核16G 139.86元3个月,还有4核16G、8核32G多配置可选。不只是云服务器ECS共享型s6实例,ECS计算型c6、通用型g6、内存型r6、云服务器u1、企业级c7/g7/r7系列、轻量应用服务器和GPU云
943 0
|
关系型数据库 MySQL 数据库
MySQL的语法涵盖了数据定义、数据操作、数据查询和数据控制等多个方面
MySQL的语法涵盖了数据定义、数据操作、数据查询和数据控制等多个方面
287 6
|
监控 安全 网络安全
恶意软件分析:解析与实践指南
【8月更文挑战第31天】
693 0
|
存储 机器学习/深度学习 缓存
阿里云PAIx达摩院GraphScope开源基于PyTorch的GPU加速分布式GNN框架
阿里云机器学习平台 PAI 团队和达摩院 GraphScope 团队联合推出了面向 PyTorch 的 GPU 加速分布式 GNN 框架 GraphLearn-for-PyTorch(GLT) 。
阿里云PAIx达摩院GraphScope开源基于PyTorch的GPU加速分布式GNN框架
|
人工智能 文字识别 Java
java实现文字识别营业执照识别(百度、讯飞)
工作中遇到一个需求是识别营业执照,看了阿里云的,腾讯云的,讯飞的,百度的。然后发现阿里云和腾讯云目前都是公测或者内测阶段,所以就去试了百度的,但是百度的只是普通的文字识别,就是识别文字中的图片,而讯飞的就比较专业了,单纯的识别营业执照。
|
弹性计算 负载均衡 安全
什么是无影云桌面?与ECS云服务器有什么区别?
什么是无影云桌面?与ECS云服务器有什么区别?阿里云无影云电脑和云服务器有什么区别?云电脑是作为个人或企业办公电脑使用,云服务器是对外提供24小时高可用服务,云电脑是桌面服务,云服务器是提供背后的计算服务,阿里云百科分享阿里云无影云电脑和云服务器的区别