Maven详解(一)------ Maven概述

1、引言  

  你能搜到这个教程,说明你对 Maven 感兴趣,但是又不是太理解。那么接下来这个系列的教程将会详细讲解 Maven 的用法,相信你看完之后,一定能对 Maven 的理解更进一步!

2、常规项目开发存在的问题

  通常Web项目开发只会创建一个工程,然后所有的jar包都会存放到 WEB-INF/lib 目录下,如下图所示:

  通过上面的目录结构我们可以分析出如下问题:

  ①、一个项目就是一个web工程。如果项目比较庞大,那么利用包名package来划分模块,显然容易造成混淆而且不利于分工合作;

  ②、项目中需要的 jar 包必须手动 复制,粘贴 到 WEB-INF/lib 目录下。这会导致每创建一个新的工程就需要将 jar 包重复复制到 lib 目录下,从而造成工作区存在大量重复的文件;

  ③、jar需要我们手动去官网上或者其他途径下载;

  ④、一个 jar 包依赖的其他 jar 包,需要自己手动加入到项目中,而且很有可能我们漏掉了某个依赖关系,导致项目运行报错。

   那么如何解决这些问题呢?本系列的主角 Maven 应运而生了。

3、什么是 Maven ?

  Maven 读音是 [ˈmevən],也就是“霉文”,而不是读“马文”。它是一个项目管理和综合工具,Maven使用标准的目录结构和默认构建生命周期。提供了开发人员构建一个完整的生命周期框架,开发团队可以自动完成该项目的基础设施建设。相信如果对 Maven 没有任何了解的,看了这段话等于没看,不过没关系,后面我们将会逐渐揭开 Maven 的神秘面纱。什么是 Maven,你只需要知道这玩意能简化和标准化项目建设过程。

4、Maven 的历史

  Maven的最初设计,以简化Jakarta Turbine项目的建设进程。有几个项目,每个项目包含了稍微不同的Ant构建文件。 JAR中检查到CVS。Apache组织开发的Maven可以建立多个项目,发布项目信息,项目部署。

5、Maven 的目标

  Maven主要目标是提供开发人员

  ①、项目是可重复使用,易维护,更容易理解的一个综合模型。

  ②、插件或交互的工具,这种声明性的模式。

  Maven项目的结构和内容是在一个XML文件中声明,pom.xml的项目对象模型(POM),这是整个Maven系统的基本单元。   

6、Maven 的理念

约定优于配置!!!

开发人员不需要创建构建过程本身,不必知道提到的每一个配置的详细信息。Maven提供了合理的默认行为的项目。创建一个Maven项目时,Maven创建默认的项目结构。开发者只需要把相应的文件和她需要在pom.xml中定义即可。

  那么如何使用 Maven 呢?请看下回分解。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏nummy

【转】如何构建爬虫代理服务?

做过爬虫的人应该都知道,抓的网站和数据多了,如果爬虫抓取速度过快,免不了触发网站的防爬机制,几乎用的同一招就是封IP。解决方案有2个:

922
来自专栏ytkah

finecms设置伪静态后分享到微信不能访问怎么处理

  finecms设置伪静态后分享到微信不能访问,分享的链接自动增加了一串参数,类似这样的***.html?from=singlemessage&isappin...

2935
来自专栏FreeBuf

[安全科普]你必须了解的session的本质

有一点我们必须承认,大多数web应用程序都离不开session的使用。这篇文章将会结合php以及http协议来分析如何建立一个安全的会话管理机制。 我们先简单的...

2067
来自专栏九彩拼盘的叨叨叨

如何应对代码报错

972
来自专栏FreeBuf

当DNS泄漏让VPN不再安全,我们该怎么办?

当你想要匿名上网时,用VPN是最简单的解决方案——你的IP地址,服务提供商和位置都会隐藏起来。但是,DNS泄漏完全可以让藏在VPN之后的你原形毕露。 FreeB...

5807
来自专栏24K纯开源

macOS下加载动态库dylib报"code signature invalid"错误的解决办法

一、现象描述       在macOS上搞开发也有一段时间了,也积攒了一定的经验。然而,今天在替换工程中的一个动态库时还是碰到了一个问题。原来工程中用的是一个静...

2175
来自专栏hbbliyong

用Visual Studio Code写Node.j

介绍 vsc的宣传语是: 一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。 按它说的...

37413
来自专栏大魏分享(微信公众号:david-share)

TCP 应答时间参数对网络性能的影响

TCP 应答延迟的概念 TCP 应答延迟是 TCP 传输层的一个优化策略,为了降低网络数据包压力,减少小数据包而进行的一个处理,称之为 Nagle 演算法。从本...

34412
来自专栏BeJavaGod

文档!重要的事情说第四遍~

之前我有提过文档的事,标题是《文档!文档!文档!重要的事情说三遍!》,其中提到的文档工具是使用wiki来管理文档,当然也能配合jira来分发任务,以及管理bug...

2733
来自专栏北京马哥教育

Linux 运维必备的 13 款实用工具,拿好了~

本文介绍几款 Linux 运维比较实用的工具,希望对 Linux 运维人员有所帮助。 1. 查看进程占用带宽情况 - Nethogs Nethogs 是一个...

3538

扫码关注云+社区