《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快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言