`
truelove12358
  • 浏览: 79954 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

【项目管理和构建】——Maven简介(一)Maven是什么,以及为什么要使用Maven

 
阅读更多

前言: maven项目也是一个项目,类似于javaProject,javaWebProject,就是多了些功能,其他也没啥,所以大家接触的时候不要害怕!

1 . 帮你下载jar包
maven项目会有一个 pom.xml文件, 在这个文件里面,只要你添加相应配置,他就会自动帮你下载相应jar包,不用你铺天盖地的到处搜索你需要的jar包了
下面是示范配置文件pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">   <modelVersion>4.0.0</modelVersion>    <groupId>exam</groupId>    <artifactId>exam_3</artifactId>    <packaging>war</packaging>    <version>0.0.1-SNAPSHOT</version>    <dependencies>     <dependency>       <groupId>junit</groupId>       <artifactId>junit</artifactId>       <version>3.8.1</version>       <scope>test</scope>     </dependency>     <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-web</artifactId>         <version>3.0.5.RELEASE</version>     </dependency>     <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-webmvc</artifactId>         <version>3.0.5.RELEASE</version>     </dependency>     </dependencies> </project>

以上主要看的<dependencies>结点里面的内容,
里面每配置一个<dependency>
<groupId>org.springframework</groupId>项目名
<artifactId>spring-webmvc</artifactId>项目模块
<version>3.0.5.RELEASE</version>项目版本
maven都会通过,项目名-项目模块-项目版本来maven在互联网上的代码库中下载相应jar包。
所以这就是maven的功能之一,帮你下载jar包

2 . 寻找依赖,帮你下载依赖
寻找jar包是第一基本功能,寻找依赖在这个是在这个基础上的功能。
在maven的代码库中,每一个jar包也有自己的 pom.xml文件,而这个文件里面也会有<dependency>配置,什么依赖范围我就不细说了,我想表达的就是,只要你配置的jar包所依赖的其他jar包都会被maven自动下载下来。
例如: 你配置了

    <dependency>         <groupId>org.springframework</groupId>       <artifactId>spring-core</artifactId>        <version>2.6</version>   </dependency>

你要maven帮你下载spring-core-2.6.jar包
而这个jar包里面需要用到commons-logging.jar这个包,
这叫就依赖,spring-core-2.6.jar依赖于commons-logging.jar。
这就是maven第二个作用,帮你下载依赖包。

3 . 热部署,热编译
意思就是,在你web项目已经运行的时候,修改代码的能直接被web服务器所接受,就不需要你 重启服务器了,或者重新部署代码了,而且你可以直接通过maven 打包war或者jar项目。

我就是大概说了一下maven 的基本作用,里面还有更详细的,想要了解的话,我是看这本书学的《Maven实战》这本书学的,这里分享一下免费电子版,感谢作者
http://www.infoq.com/cn/minibooks/maven-in-action



Maven是什么,以及为什么要使用Maven
参考书籍(推荐大家购买实体书):《Maven实战》(国内首本Maven著作)(Maven的安装、配置及使用入门)

1.概述
Maven是一个构建工具,服务与构建.使用Maven配置好项目后,输入简单的命令,如:mvn clean install,Maven会帮我们处理那些繁琐的任务.
Maven是跨平台的.
Maven最大化的消除了构建的重复.
Maven可以帮助我们标准化构建过程.所有的项目都是简单一致的,简化了学习成本.

总之,Maven作为一个构建工具,不仅帮我们自动化构建,还能抽象构建过程,提供构建任务实现.他跨平台,对外提供一致的操作接口,这一切足以使他成为优秀的,流行的构建工具.
但是Maven不仅是构建工具,他还是一个依赖管理工具和项目信息管理工具.他还提供了中央仓库,能帮我们自动下载构件.
使用Maven还能享受一个额外的好处,即Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置(Convention Over Configuration)。


2.对比,Maven,IDE,Mark,Ant
a.IDE:基本上所有的主流IDE都集成了Maven,我们可以在IDE中方便的运行Mave执行构建.IDE依赖大量的手工操作。编译、测试、代码生成等工作都是相互独立的,很难一键完成所有工作。手工劳动往往意味着低效,意味着容易出错很难在项目中统一所有的IDE配置,每个人都有自己的喜好。也正是由于这个原因,一个在机器A上可以成功运行的任务,到了机器B的IDE中可能就会失败。
所以,要合理使用IDE,不过多依赖.Maven是专家.

b.Make也许是最早的构建工具,具体不详,没用过,可以不了解.Make的强大之处在于它可以利用所有系统的本地命令,尤其是UNIX/Linux系统,丰富的功能、强大的命令能够帮助Make快速高效地完成任务。
但是,Make将自己和操作系统绑定在一起了。也就是说,使用Make,就不能实现(至少很难)跨平台的构建,这对于Java来说是非常不友好的。此外,Makefile的语法也成问题,很多人抱怨Make构建失败的原因往往是一个难以发现的空格或Tab使用错误。


c.Ant是意指“另一个整洁的工具”(Another Neat Tool),它最早用来构建著名的Tomcat,其作者James Duncan Davidson创作它的动机就是因为受不了Makefile的语法格式。我们可以将Ant看成是一个Java版本的Make,也正因为使用了Java,Ant是跨平台的。此外,Ant使用XML定义构建脚本,相对于Makefile来说,这也更加友好。
和Make一样,Ant也都是过程式的,开发者显式地指定每一个目标,以及完成该目标所需要执行的任务。针对每一个项目,开发者都需要重新编写这一过程,这里其实隐含着很大的重复。Maven是声明式的,项目构建过程和过程各个阶段所需的工作都由插件实现,并且大部分插件都是现成的,开发者只需要声明项目的基本元素,Maven就执行内置的、完整的构建过程。这在很大程度上消除了重复。
Ant是没有依赖管理的,所以很长一段时间Ant用户都不得不手工管理依赖,这是一个令人头疼的问题。幸运的是,Ant用户现在可以借助Ivy管理依赖。而对于Maven用户来说,依赖管理是理所当然的,Maven不仅内置了依赖管理,更有一个可能拥有全世界最多Java开源软件包的中央仓库,Maven用户无须进行任何配置就可以直接享用。

3.Maven与极限编程
极限编程(XP)是近些年在软件行业红得发紫的敏捷开发方法,它强调拥抱变化。
首先看一下Maven如何帮助XP团队实现一些核心价值:
?简单。Maven暴露了一组一致、简洁的操作接口,能帮助团队成员从原来的高度自定义的、复杂的构建系统中解脱出来,使用Maven现有的成熟的、稳定的组件也能简化构建系统的复杂度。
?交流与反馈。与版本控制系统结合后,所有人都能执行最新的构建并快速得到反馈。此外,自动生成的项目报告也能帮助成员了解项目的状态,促进团队的交流。


Maven几乎能够很好地支持任何软件开发方法。

例如,在传统的瀑布模型开发中,项目依次要经历需求开发、分析、设计、编码、测试和集成发布阶段。从设计和编码阶段开始,就可以使用Maven来建立项目的构建系统。在设计阶段,也完全可以针对设计开发测试用例,然后再编写代码来满足这些测试用例。然而,有了自动化构建系统,我们可以节省很多手动的测试时间。此外,尽早地使用构建系统集成团队的代码,对项目也是百利而无一害。最后,Maven还能帮助我们快速地发布项目。

分享到:
评论

相关推荐

    项目管理利器——maven

    项目管理利器——maven,技术开发学习类稳定档案顶顶顶顶

    项目管理与SSM框架——Maven学习与案例练习

    Maven是一个强大的项目管理工具,尤其在Java开发领域中广泛使用,它简化了项目的构建、依赖管理和项目打包的过程。Maven的核心理念是通过Project Object Model(POM)来描述项目,并利用中央仓库来管理各种依赖。 1...

    Java项目管理和构建工具Maven的详细配置与使用指南

    1. Maven概述:Maven是一个项目管理和构建自动化工具,由Apache软件基金会维护。其设计目标是简化Java项目构建过程,并提供标准化的构建过程。Maven不仅支持Java项目的构建,还可以通过插件机制支持其他编程语言项目...

    Apache Maven是一个软件项目管理和综合工具

    Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。 本教程将介绍如何使用Maven在Java开发,或任何其他的编程语言的任何项目。

    使用Maven构建多模块项目

    Maven作为Java领域广泛使用的构建工具,提供了强大的支持来管理多模块项目。本文将深入探讨如何利用Maven构建多模块项目,以及在实际操作中需要注意的关键点。 1. Maven多模块项目结构: Maven多模块项目通常遵循...

    持续集成环境搭建——maven、git、jenkins、tomcat

    Apache Maven是一个项目管理和综合工具,它可以帮助开发者管理项目构建、报告、依赖关系等。以下是maven的安装步骤: 1. 访问Apache官网(http://maven.apache.org/download.cgi)下载最新版的maven安装包。 2. 解...

    Java平台Maven项目管理和构建工具的安装与配置

    内容概要:本文详细介绍了一个常用的Java项目管理和自动化构建工具——Maven的下载、安装及配置方法。首先,解释了Maven是什么及其主要功能;接着,提供了针对不同操作系统的安装步骤(包括Windows、Linux和Mac);...

    使用eclipse构建maven

    在Java开发领域,Maven是一个广泛使用的项目管理和构建自动化工具,它简化了依赖管理和构建流程。Eclipse作为流行的Java集成开发环境(IDE),通过集成Maven插件m2eclipse,使得开发者可以在Eclipse内部方便地管理...

    使用Eclipse构建Maven项目

    总之,“使用Eclipse构建Maven项目”涉及到的关键知识点有:Eclipse与Maven的集成,Maven项目的创建和配置,pom.xml文件的管理,Maven的目录结构,依赖管理,构建过程,以及命令行工具的使用。通过熟练掌握这些,...

    Maven是一个开源的项目管理和构建工具,主要用于Java平台的项目构建和依赖管理,但也可以支持其他语言的项目 Maven通过项

    mavenMaven是一个开源的项目管理和构建工具,主要用于Java平台的项目构建和依赖管理,但也可以支持其他语言的项目。Maven通过项目对象模型(POM)来管理项目配置信息,自动化构建、测试和部署过程。以下是对Maven的...

    Maven是一个开源的项目管理和构建工具

    Maven是Java领域中广泛使用的项目管理和构建工具,它极大地简化了软件开发过程,特别是对于Java应用程序的构建、依赖管理以及项目信息管理。Maven通过一套标准化的构建生命周期和约定优于配置的原则,使得开发者无需...

    maven构建的java项目demo

    在软件开发中,Maven 是一个广泛应用的项目管理和综合工具,尤其对于Java开发者来说,它简化了构建、依赖管理和项目文档生成的过程。本篇文章将深入探讨 Maven 如何用于构建 Java 项目,以及如何通过 Maven 打包一个...

    使用maven构建springMVC项目

    而Maven作为自动化构建工具,能够简化项目构建过程中的依赖管理和项目信息管理等操作。 #### 描述解析与扩展知识点 - **描述**:“不错的整合文档,适合开发跟学习,里面具体的都有写挺详细的。” - **扩展知识点**...

    maven项目管理工具

    Maven,作为Apache软件基金会的一员,是一款强大的Java项目管理工具,旨在简化构建过程,管理和自动化项目生命周期。它的核心理念是通过一种标准的项目对象模型(Project Object Model,POM),统一项目的构建配置,...

    项目管理 apache-maven-3.8.1 项目程序自动构建工具

    基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),...

    Maven项目管理软件

    Maven通过自动化构建过程,简化了项目的构建、依赖管理和文档生成,使得开发人员可以更加专注于代码本身。 ** Maven的核心功能 ** 1. **构建工具**:Maven能够编译源代码,运行测试,打包项目(如JAR或WAR),生成...

    基于maven创建web项目

    基于maven创建web项目 maven是一种基于项目对象模型(Project Object Model,POM)的项目管理工具,由Apache软件基金会开发和维护。...通过这篇文章,读者可以学习到如何使用maven来构建和管理web项目。

    使用Eclipse构建Maven项目.pdf

    在使用Eclipse构建Maven项目的过程中,涉及到的知识点主要集中在Eclipse集成环境配置、...上述内容涵盖了从环境搭建到项目构建和发布的基本步骤,对于想要掌握Eclipse中Maven使用方法的开发者而言,提供了详尽的指导。

    Apache Maven项目构建工具 v3.9.6.zip

    Apache Maven是Java开发领域广泛应用的一款项目管理工具,它基于项目对象模型(Project Object Model, POM)的概念,能够自动化构建、依赖管理和项目信息管理。在本文中,我们将深入探讨Maven 3.9.6这一版本,以及它...

Global site tag (gtag.js) - Google Analytics