《maven实战》学习笔记1——maven是什么?为什么要用maven?

2024-04-28 07:08

本文主要是介绍《maven实战》学习笔记1——maven是什么?为什么要用maven?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

工欲善其事,必先利其器。对于java web开发者而言,或者说对于目前大部分java web开发者而言,eclipse、maven、svn、tomcat可能就是目前最常用也是必会的武器了,所以为了更高效的开发和解决问题,经过一番思考后我决定系统性的学学这几样武器。
这几样在我看来一样的重要,也就没有先后之分。都要学,于是我便随便抽了一个,就先从maven开始,主要是结合《maven实战》一书的电子版和纸质版来学习和实践。
为了更好的记忆,同时也为了能在学习的过程中帮到更多人,遂决定做这个系列的笔记。

笔记

目前看了这本书的第一章,主要是对maven的一些介绍,由于这次学习的目的不仅限于知其然,因此这种介绍性的东西也自然需要做好笔记,具体的一些要点记录如下:

maven是什么

优秀的项目构建工具

maven是什么,根据介绍,maven首先是一个优秀的java项目构建工具。而构建是什么,就是通常我们工作中常常要做的那些繁琐的事,如编译、单元测试、打包、部署等等。
在没有maven这样的构建工具的时候,可能每个项目的上述每一项都需要重复的操作,而有了maven,只需要按规范进行一定的配置后,就可以把这些繁琐而重复的工作变得简单而不再那么重复。
同时,使用maven创建项目,具体的创建过程都由maven内部实现,使得凡是使用它构建的项目基本结构都是一样的,这样统一了风格之后便更利于团队的开发效率。
上边的这些,实际上我以前仅仅是用了创建项目、编译、打包这三个而已,其他一些功能由于不知道,也就更不用说使用了。

依赖管理工具

除了项目构建以外,maven另一个强大的功能就是进行依赖管理了。实际上在看这本书之前,在初次接触maven的时候,我最先尝到maven甜头的地方就是这里。
在没有使用maven之前,基本上就是把所有依赖的jar包一个一个找出来,然后放到项目的lib文件夹下,之后再加入到build path中。这样不仅会经常少jar包,更是经常由于关联jar包的版本问题让人头疼不已。
而使用了maven之后,只需要在pom.xml中规范的配置主要用的jar包的坐标就ok了,至于依赖了什么几乎完全不用关心。

项目信息管理工具

前边的两个maven的功能,即便我不是全了解,但是起码是知道一些的,但是对于这个功能,可能我在实际配置的过程中用过或者见过,但是却并没有这种概念。
而学了这一章的介绍后,才明白maven还可以管理如此多的东西,包括项目描述、开发者列表、缺陷管理地址、版本控制系统地址、生成项目文档、测试报告等等,那么在后续的学习和实践中必然要更加细致的了解,相信也可以让后续的工作更加得心应手。

为什么要用maven

知道了maven是什么,也就大概知道了maven能帮我们做什么事,但是除非maven能实现的功能只有它能实现,否则似乎就没有必须使用maven的理由,因为他有了替代性。
那么就需要和一些也能像他一样实现某些功能的工具进行一个比较,有了比较,便有了必用的理由。
就拿构建项目这个功能来说,除了maven,就还有make、ant这样的工具能实现。只不过就像术业有专攻一样,这三个工具特性有所区别,最适合的应用场景也就不一样了。
make和系统结合的非常好,可以使用所有系统的本地命令,但是和系统结合过于紧密,导致可移植性、跨平台不好。
而ant是用java语言写的,就使得他有了可移植性和跨平台,但是ant本身却无法管理依赖,现在虽然可以借助lvy管理依赖,却似乎并不如maven这么方便。
maven有全球公用的免费maven仓库,还由于开源,使得它有大量的插件可以使用。
综上所述,maven可以说是目前java软件开发最优秀的项目构建类工具,也是为什么要使用maven的理由。

maven的不足

由于我自身实际上只用过ant和maven,而且ant也只是最近接触的一个老项目用了,所以对ant和maven的了解都不够,也就无法很肯定的说maven具体的问题和缺陷。
但是所谓金无足赤,人无完人,maven也必然有它的不足,就比如《maven实战》书中说的那样,由于发展历史还较短,使得目前对IDE的插件支持还不够优化等。

这篇关于《maven实战》学习笔记1——maven是什么?为什么要用maven?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942601

相关文章

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3

Java实战之利用POI生成Excel图表

《Java实战之利用POI生成Excel图表》ApachePOI是Java生态中处理Office文档的核心工具,这篇文章主要为大家详细介绍了如何在Excel中创建折线图,柱状图,饼图等常见图表,需要的... 目录一、环境配置与依赖管理二、数据源准备与工作表构建三、图表生成核心步骤1. 折线图(Line Ch

Java使用Tesseract-OCR实战教程

《Java使用Tesseract-OCR实战教程》本文介绍了如何在Java中使用Tesseract-OCR进行文本提取,包括Tesseract-OCR的安装、中文训练库的配置、依赖库的引入以及具体的代... 目录Java使用Tesseract-OCRTesseract-OCR安装配置中文训练库引入依赖代码实

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

使用maven依赖详解

《使用maven依赖详解》本文主要介绍了Maven的基础知识,包括Maven的简介、仓库类型、常用命令、场景举例、指令总结、依赖范围、settings.xml说明等,同时,还详细讲解了Maven依赖的... 目录1. maven基础1.1 简介1.2 仓库类型1.3 常用命令1.4 场景举例1.5 指令总结

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2