Maven工具的简单介绍,以及manen与spring框架之前的优缺点,解决什么是maven、为什么要使用maven,使用maven的好处等问题
我不知道经常喜欢在平台写博客的人,都是一些什么人?应该是一群有意思的人
这里写目录标题
- 1、什么是maven
- 2、为什么要使用maven
- 2.1、问题一
- 2.2、问题二
- 2.3、总结
- 3、使用maven的好处
- 3.1、模型上的差异
- 3.2、jar的使用
- 3.3、jar的引入
- 4、maven的缺点
1、什么是maven
官方回答:
个人理解,我们经常会被一些外在事物影响,难以判断最根本的东西,maven主要就是更好的帮助我们处理那些繁琐的项目依赖,比如各种jar包、模块之间的依赖频繁调用,无用繁琐且容易出问题;
2、为什么要使用maven
这个跟之前的说法相呼应,主要是因为两点:
2.1、问题一
项目中的jar包资源需要我们自己从网上下载后,手动导入到项目中使用,一旦jar包资源过多,容易造成遗漏并且不好管理
2.2、问题二
假如我们有两个项目,项目A和项目B,如果项目A中需要使用项目B 中的某些资源,需要我们自己手动的将项目B中的资源导出为jar包,然后手动导入到A项目中,比较麻烦
2.3、总结
我们是干什么的,我们是搞程序开发的,那么能不能开发一款软件,专门来管理项目中的第三方的jar包资源呢?我们可以通过该软件来导入我们自己项目开发需要的jar包资源,同时还可以通过这款软件将自己的项目中的资源导出为jar包对外提供服务呢?答案是可以,那就是maven
3、使用maven的好处
使用maven的好处,还是大大的有,
在了解之前,我们要先知道一个概念,那就是ant:软件构建工具,或许大家见过ant的jar包,但是不一样,ant他指的是我们之前做的无论是jdbc还是mybaits或者是spring,它们都是通过运行一系列操作,最终将项目的配置和源文件统一进行加载至comcat上,当然这个是我刚了解,为此还特意问了一下:
如有需要可以去他的博客学习一下:
两个猕猴桃
3.1、模型上的差异
maven和ant最大的差别就是在于maven的编译以及所有的脚本都有一个基础,就是POM(project object model)。这个模型定义了项目的方方面面,然后各式各样的脚本在这个模型上工作,而ant完全是自己定义,显然maven更胜一筹
3.2、jar的使用
我们之前的框架jar包使用的时候,大都是像这样引入的:
这样或许在有些培训机构的学生看起来比较简单,不就是文件复制一下,导一下就行了,但如果这些jar包让你找呢?确实很麻烦,
另外就是我们之前在一个项目中,创建了很多模块,我们需要重复加载很多次jar包,这些加载的都是我们直接拿着jar包的源文件进行加载的
maven是通过pom进行引入jar包,在jar的版本管理以及处理jar包直接的依赖关系上比较好
3.3、jar的引入
Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,tld,pom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。这一切都是自动的,而ant需要自己定义了。这个好处导致的结果就是,用maven编译的项目在发布的时候只需要发布源码,小得很,而反之,ant的发布则要把所有的包一起发布,显然maven又胜了一筹
4、maven的缺点
主要的优点就这些,那maven有什么缺点吗?
对于初学者来说,maven需要注意某些jar是哪个公司的,导入时可能会因为编写的不正确,最终显示不了效果
第二点的话应该就是他的结构相比我们之前学习的框架,有些复杂
本文章只作为个人笔记,如有错误请指出:
点赞就送精美404报错页面:
Maven工具的简单介绍,以及manen与spring框架之前的优缺点,解决什么是maven、为什么要使用maven,使用maven的好处等问题相关推荐
- 多通道振弦传感器无线采集仪参数配置工具SETP简单介绍
多通道振弦传感器无线采集仪参数配置工具SETP简单介绍 VS208/416/432 是以振弦.温度传感信号为主的多通道无线采集仪,并可扩展其它 模拟(电流.电压.电阻)信号和数字信号(RS485.RS ...
- Postman工具的简单介绍
Postman工具简单介绍 前言 一.侧边栏 二.工具栏 三.构建器 四.控制台 五.菜单栏 六.状态栏 七.选项卡和窗口 八.键盘快捷键 九.数据编辑器 十.支持多行 前言 Postman提供了一种 ...
- 如何写好测试用例以及go单元测试工具testify简单介绍
背景 最近在工作和业余开源贡献中,和单元测试接触的比较频繁.但是在这两个场景之下写出来的单元测试貌似不太一样,即便是同一个代码场景,今天写出来的单元测试和昨天写的也不是很一样,我感受到了对于单元测 ...
- otrs软件_开源ITIL管理工具OTRS简单介绍
OTRS的名字是由Open-source Ticket Request System首字母縮略字而来,是一个开源的缺陷跟踪管理系统软件.OTRS将电话,邮件等各种渠道提交进来的服务请求归类为不同的队列 ...
- 安卓手机自动化一些工具的简单介绍
工具1Monkey: 工具介绍:Monkey是一个程序,运行在您的模拟器或设备上,并生成伪随机的用户事件流,如点击,触摸或手势,以及一些系统级事件. 您可以使用Monkey以随机但可重复的方式对您正在 ...
- java 测试工具 oracle_几种测试工具的简单介绍
负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担. 二.WinRunner WinRunner 是一种企业级的功能测试工具,用于检验企业应用程序是否能 ...
- IOS手机自动化一些工具的简单介绍
工具1XCTest XCTest是苹果在iOS 7和Xcode5引入的一个简单而强大的测试框架,它的测试编写起来非常简单,并且遵循xUnit风格.XCTest的优点是与Xcode深度集成,有专 ...
- Linux系统自带日志管理工具rsyslog简单介绍
1,可以已查看本机的rsyslog服务状态 sudo systemctl status rsyslog 2,可以查看服务的包的版本及配置所在目录 2.1,可以看出这个 /etc/logrotate.d ...
- 大数据离线分析工具Hive简单介绍
Hive是Facebook为了解决海量日志数据的分析而开发的,后来开源给了Apache软件基金会,可见Apache软件基金会是个神奇的组织,我们之前学过的很多开源工具都有Apache软件基金会的身影. ...
- 快速跳转工具--FASD 简单介绍
前言 fasd是一个命令行加速工具.它提供了对文件和文件夹的快速访问.它和autojmp, z, v都很相近.它会记录你访问过的文件夹和文件, 然后你就可以通过简短的名字来直接访问它们. fasd会对 ...
最新文章
- Jacobian矩阵的几何意义
- 基于海康机器视觉算法平台的对位贴合项目个人理解 | CSDN原力计划
- 浏览器兼容性 问题收集
- spring boot多环境配置
- Vue 3 —— 当 data 和 ref 相同时 运行时错误 [ReferenceError: xxx is not defined]
- 加班其实不是真正的理由(Coders Life)
- 上个ensp实验只发了配置,这次是命令条目
- Navicat 提示 Access violation at address ***(771B7870) in module ‘ntdll.dll’. Read of address ***(220A
- wifi情况下使用fiddler_钢筋网片在什么情况下使用?
- android获取各种系统路径的方法
- 用MyEclipse测试发送email时报java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
- Android自定义View【实战教程】2⃣️----自定义view那些事
- 《模拟电子技术基础》-(童诗白)笔记
- matlab 计算函数极值,如何用MATLAB求函数的极值点和最大值
- 零基础:21天搞定Python分布爬虫完整视频教程百度网盘免费获取
- vue:如何实现文字竖排
- DGL笔记1——用DGL表示图
- Python3之数据结构
- SVL-VI SLAM
- 微信小程序获取用户信息后的解密操作
热门文章
- Cloud Foundry 2018欧盟峰会日程已确定
- OpenStack Queens版本Security项目介绍
- 【元胞自动机】基于matlab元胞自动机超车换道【含Matlab源码 359期】
- 【三维路径规划】基于matlab广度优先搜索算法无人机三维路径规划【含Matlab源码 270期】
- 【TWVRP】基于matalb模拟退火算法求解带时间窗的车辆路径规划问题【含Matlab源码 160期】
- 【TWVRP】基于matlab节约算法求解带时间窗的车辆路径规划问题【含Matlab源码 156期】
- 【基础教程】基于matlab图像融合总结【含Matlab源码 055期】
- 【数学建模】基于matlab时变参数随机波动率向量自回归模型(TVP-VAR)【含Matlab源码 037期】
- springcloudalibaba 架构图_Spring Cloud Alibaba 架构实战
- Mybatis Sql 大于号小于号不兼容