一、Maven简介  

  Maven可以翻译为“知识的积累”、“专家”、“内行”。作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理、和项目信息管理。Maven在各类项目中都可以大显身手。

  (1) Maven是优秀的构建工具
    除了编写源代码,我们每天有相当一部分时间花在了编译,运行单元测试,生成文档,打包,部署等繁琐且不起眼的工作上,这就是构建。Maven就是一个异常强大的构建工具,能够帮我们自动化构建过程,从清理,编译,测试,到生成报告,再到打包和部署。

    我们不需要一遍一遍的输入命令, 一次又一次点击鼠标,Maven帮我们很方便的搞定。Maven是跨平台的。
  (2) Maven还是依赖管理工具和项目信息管理工具
    1. Maven通过一组坐标能够找到任何一个Java类库(如jar),Maven给这个类库世界引入了经纬,让它们变得有秩序,于是我们可以借助它来有序地管理依赖,轻松地解决那些繁杂的依赖问题。

    2. Maven还能帮助我们管理原本分散在项目中各个角落的项目信息,包括项目描述,开发者列表,版本控制系统地址,许可证,缺陷管理系统地址等。除了直接的项目信息,通过Maven自动生成的站点,

      以及一些已有的插件,我们还能轻松地获得项目文档、测试报告、静态分析报告、源码版本日志报告等非常具有价值的项目信息。

  (3) 仓库
    Maven为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何流行开源类库。通过Maven的一些衍生工具(如Nexus),我们还能对其进行快速地搜索。只要定位了坐标,Maven就能够帮我们自动下载,省去了手工劳动。

  1.1、项目的构建

  项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。

  

  1.2、依赖管理

  依赖指的是jar包之间的相互依赖,比如我们搭建一个Struts2的开发框架时,光光有struts2-core-2.3.16.3.jar这个jar包是不行的,struts2-core-2.3.16.3.jar还依赖其它的jar包,

  依赖管理指的就是使用Maven来管理项目中使用到的jar包,Maven管理的方式就是“自动下载项目所需要的jar包,统一管理jar包之间的依赖关系”。

  1.3、使用maven的优点 

  Maven中使用约定,约定java源代码代码必须放在哪个目录下,编译好的java代码又必须放到哪个目录下,这些目录都有明确的约定。

  Maven的每一个动作都拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程

  只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮我们处理其他事情

  使用Maven可以进行项目高度自动化构建,依赖管理(这是使用Maven最大的好处),仓库管理。

二、Maven的安装

  2.1、Maven的下载

  下载地址是:http://maven.apache.org/download.cgi 

  

  下载完成后,得到一个压缩包解压,可以看到maven的组成目录

  

  Maven目录介绍:    

    bin:含有mvn运行的脚本

    boot:含有plexus-classworlds类加载器框架

    conf:含有settings.xml配置文件

    lib:含有Maven运行时所需要的java类库

    LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍

  1.2、Maven的安装

    第一步:首先你要确保你的电脑已经安装了jdk1.6版本以上的,并配置好了JDK的环境变量。

    第二步:

      对apache-maven-3.2.3-bin.zip进行解压缩,例如解压到如下目录(解压目录最好不要有中文)

      

    第三步:配置环境变量

      

    第四步:设置环境变量path,将%M2_HOME%\bin加入到path中,一定要注意使用分号;隔开。

    第五步:验证是否配置成功

      打开cmd命令

      输入:mvn-v

      

三、Maven的使用

  3.1、Maven的目录结构

    MavenProjectRoot(项目根目录)
       |----src
       |     |----main
       |     |         |----java ——存放项目的.java文件
       |     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
       |     |----test
       |     |         |----java ——存放所有测试.java文件,如JUnit测试类
       |     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
       |----target ——项目输出位置
       |----pom.xml ----用于标识该项目是一个Maven项目   

  3.2、手动创建一个Maven项目

    第一步:创建项目的根文件夹:FirstMaven

    

    第二步:创建一个pom.xml文件

    

<?xml version="1.0" encoding="UTF-8"?>
2 <project xmlns="http://maven.apache.org/POM/4.0.0"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
5 http://maven.apache.org/xsd/maven-4.0.0.xsd">
6 <!--所有的Maven项目都必须配置这四个配置项-->
7 <modelVersion>4.0.0</modelVersion>
8 <!--groupId指的是项目名的项目组,默认就是包名-->
9 <groupId>cn.gacl.maven.hello</groupId>
10 <!--artifactId指的是项目中的某一个模块,默认命名方式是"项目名-模块名"-->
11 <artifactId>hello-first</artifactId>
12 <!--version指的是版本,这里使用的是Maven的快照版本-->
13 <version>SNAPSHOT-0.0.1</version>
14 </project>

  第三步:编写Java类文件,Maven项目规定,所有的*.java文件必须放在src目录下的main目录下的java目录中,在FirstMaven项目根目录中创建一个src目录,然后在src目录中创建main目录,在main目录中再创建java文件夹

       

  第四步:使用Maven编译Hello.java,首先进入到项目根目录,然后使用命令”mvn compile”进行编译

   

    使用Maven编译完成之后,在项目的根目录会产生一个target文件夹。

    

    打开target文件夹,可以看到里面有一个classes文件夹,classes文件夹存放的就是编译成功后生成的.class文件。

      

    第五步:使用"mvn clean"命令清除编译结果,也就是把编译生成的target文件夹删掉

     

    

四、修改Maven中心仓库下载到本地的jar的默认存储位置(配置本地仓库)

  从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home}表示当前登录系统的用户目录(如"C:\Users\gacl")

    

    

    Jar包存放在这个位置不太好,我们希望能够自己定义下载下来的jar包的存放位置,因此我们可以自己设置下载到本地时的jar包的存放目录。

    

    找到apache-maven-3.3.9\conf下的settings.xml文件

      

    复制setting.xml文件,到默认的jar存放位置

    

    编辑setings.xml文件

    

    设置E盘下的AstudySoftwere/mavenrepository目录作为maven默认的下载存储位置

    把jar包下载到本地的好处就是,当编译时,会优先从本地的jar包去找,如果本地存在,就直接拿来用,如果不存在,就从Maven的中心仓库去下载。

Maven(一)之Maven入门的更多相关文章

  1. Maven学习笔记-01-Maven入门

    一 Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1  项 ...

  2. Maven学习(1) - Maven入门

    home index:http://maven.apache.org/ download:http://maven.apache.org/download.cgi install: http://ma ...

  3. 明晚8点,捷微团队QQ群公开课,解说jeewx2.0版本号maven环境的搭建入门!

    2014-08-13号晚8点,捷微团队QQ群公开课,解说jeewx2.0版本号maven环境的搭建入门! 讲师:刘强(团队成员) QQ群:287090836 (JAVA版本号微信开源项目) http: ...

  4. Maven系列学习(二)Maven使用入门

    Maven使用入门 通过上一节的学习,我们已经了解和配置好了Maven,接下来需要编写代码了 1.POM(Project Object Model,项目对象模型) 和Make的Makefile类似,M ...

  5. Maven学习总结--maven入门(一)

    一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理.

  6. 【Maven】Maven的安装与入门使用

    它也是实现项目各个环节的好帮手,如编译.单元测试.打包.发布,等等.按照它的流程走,可以让我们养成严谨的习惯. 同时,我们用得很多的是用它下载JAR,想想以前,以前框架的包都是自己一个一个爬官网下载的 ...

  7. MyEclipse配置maven创建项目教程入门

    Maven简介:Maven是一个项目管理工具,主要用于Java平台的项目构建.依赖管理和项目生命周期管理. 下载Maven: https://maven.apache.org/download.cgi ...

  8. Maven快速配置和入门

    概念 Maven其实就是一个管理项目.构建项目的工具.它有标准化的项目结构.构建流程.依赖管理. 功能 Maven提供了一套标准的项目结构 Maven提供了一套标准的构建流程 Maven提供了更便捷的 ...

  9. maven之一:maven安装和eclipse集成

    maven作为一个项目构建工具,在开发的过程中很受欢迎,可以帮助管理项目中的bao依赖问题,另外它的很多功能都极大的减少了开发的难度,下面来介绍maven的安装及与eclipse的集成. maven的 ...

  10. Maven进价:Maven构建系列文章

    Maven:基于Java平台的项目构建.依赖管理和项目信息管理. 1.构建 Maven标准化了构建过程 构建过程:编译.运行单元测试.生成文档.打包和部署 避免重复:设计.编码.文档.构建 2.依赖管 ...

随机推荐

  1. HBA卡

    HBA,即主机总线适配器英文“Host Bus Adapter”缩写.是一个在服务器和存储装置间提供输入/输出(I/O)处理和物理连接的电路板和/或集成电路适配器. HBA减轻了主处理器在数据存储和检 ...

  2. Kettle和ETL的基本构成

    不多说,直接上干货! 这里,我说的通俗易懂点,好方便大家的理解. ETL解决方案就像业务流程一样,具有输入.输出,以及一个或多个工作环节,处理步骤.同样的,这些步骤也具有输入和输出,并可以执行将一个输 ...

  3. HOJ 1867 经理的烦恼 【 树状数组 】

    题意:给出一个区间,求这个区间里面素数的个数 这道题wa了好多次---是因为add操作没有写对 每次更新的时候,应该先判断没有加上y是不是质数,加上了y是不是质数 如果从质数变成不是质数,那么add( ...

  4. Swift 中的协议

    Swift 中的协议协议是为方法.属性等定义一套规范,没有具体的实现,类似于Java中的抽象接口,它只是描述了方法或属性的骨架,而不是实现.方法和属性实现还需要通过定义类,函数和枚举完成. 协议定义 ...

  5. git pull 失败 ,提示:fatal: refusing to merge unrelated histories

    首次 git pull 时失败,并提示:fatal: refusing to merge unrelated histories 在使用git pull 命令时,添加一个可选项 git pull or ...

  6. FCC高级编程篇之Symmetric Difference

    Symmetric Difference Create a function that takes two or more arrays and returns an array of the sym ...

  7. Python内置数据结构之字符串str

    1. 数据结构回顾 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于字符串,但是字符串是不可变序列,因此所有的元素赋值和切片赋值都是非法的. >>> ...

  8. 手把手教你如何新建scrapy爬虫框架的第一个项目(下)

    前几天小编带大家学会了如何在Scrapy框架下创建属于自己的第一个爬虫项目(上),今天我们进一步深入的了解Scrapy爬虫项目创建,这里以伯乐在线网站的所有文章页为例进行说明. 在我们创建好Scrap ...

  9. Iterator(迭代器) 和generator

    数组是可迭代的 var a = []; console.dir(a); 发现这里有一个Symbol.iterator ,说明它是可迭代的. object 是不可以迭代的 var a = {} cons ...

  10. PHP SOAP模块的使用方法:NON-WSDL模式

    PHP SOAP扩展可以帮助我们很轻松的实现web service服务,在PHP的SOAP扩展中主要有两种操作模式:WSDL模式和NON-WSDL模式,前者通过使用WSDL文件名作为参数,并从 WSD ...