Maven1详解
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 呢?请看下回分解。
Maven1详解的更多相关文章
- Maven-pom.xml详解
(看的比较累,可以直接看最后面有针对整个pom.xml的注解) pom的作用 pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵 ...
- 【转】maven核心,pom.xml详解
感谢如下博主: http://www.cnblogs.com/qq78292959/p/3711501.html maven核心,pom.xml详解 什么是pom? pom作为项目对象模型.通过 ...
- 学习笔记——Maven pom.xml配置详解
POM的全称是“ProjectObjectModel(项目对象模型)”. pom.xml详解 声明规范 <projectxmlns="http://maven.apache.org/P ...
- Maven使用笔记(四)pom.xml配置详解
pom.xml文件配置详解 --声明规范 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...
- mvn详解
1.前言 Maven,发音是[`meivin],"专家"的意思.它是一个很好的项目管理工具,很早就进入了我的必备工具行列,但是这次为了把project1项目完全迁移并应用maven ...
- 【转】Maven pom.xml 配置详解
原文链接:https://yq.aliyun.com/articles/38271 pom.xml文件配置详解 --声明规范 <project xmlns="http://maven. ...
- maven pom文件详解
http://www.blogjava.net/hellxoul/archive/2013/05/16/399345.html http://blog.csdn.net/houpengfei111/a ...
- Maven settings.xml配置详解
首先:Maven中央仓库的搜索全部公共jar包的地址是,http://search.maven.org/ ===Maven基础-默认中央仓库============================== ...
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
随机推荐
- 编译 lua cjson模块
使用文档:http://www.kyne.com.au/~mark/software/lua-cjson-manual.html下载地址:http://www.kyne.com.au/%7Emark/ ...
- jekins使用的坑
1.日志打满 一个周末回来,服务器的磁盘就写满了 现象如下,最后是修改catalina脚本 添加了如下配置 ###jekins log problem#########export JAVA_OPTS ...
- 阿里云mysql安装
阿里云上安装mysql还是遇到些问题,感觉不是傻瓜式一键安装,还是写个帖子以后看 1.安装 https://yq.aliyun.com/articles/47237 启动mysql的时候报了问题 My ...
- spring boot 源码之SpringApplication
run方法 run方法主要创建和初始化ConfigurableApplicationContext,在各个节点调用SpringApplicationRunListener的回调函数,在发送异常时调用用 ...
- Powershell编程基础-004-for语句的使用
For循环在PowerShell中也称为For语句. 同其他编程语言类似 当指定条件的值为True时,此循环以代码块的形式执行语句,另,For后面接(;;)代表恒为真! 实例1:用于执行指定次数的语句 ...
- 关于kafka中consumer subscribe与asssign的理解
kafka中consumer subscribe与asssign的理解: https://blog.csdn.net/weixin_34332905/article/details/91392030
- 用Docker swarm快速部署Nebula Graph集群
用Docker swarm快速部署Nebula Graph集群 一.前言 本文介绍如何使用 Docker Swarm 来部署 Nebula Graph 集群. 二.nebula集群搭建 2.1 环境准 ...
- MySQL中concat()、concat_ws()、group_concat()函数的使用技巧与心得总结
Author:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,原创文章, B站技术分享 B站视频 : Bilibili.c ...
- Ubuntu16.04下升级Python到3.7
本帖从IT老兵博客学习得知: 本帖前提: 开发一个Python的系统,需要安装Python3.6以上的版本,由于使用的操作系统是Ubuntu16.04,默认带的Python是2.7.12和3.5,不满 ...
- Leetcode-数组&链表
常见双指针技巧用法,只总结思路,具体边界判定想不清楚的时候稍微画个图就行了 1. 快慢指针判断链表是否含有环.环入口(快慢指针再次相遇即有环:再从头节点和快慢指针的相遇位置同速度向后,相遇点即为环入口 ...