假设公司要开发一个新的Web项目,使用目前流行的struts2、spring、MyBatis进行新项目开发。那么接下来首先要进行的工作就是各个框架的jar包的下载。大家通常的做法是先到struts2的官网下载struts2的jar包,再到spring的官网下载spring的jar包,再到MyBatis官网下载MyBatis的jar包以及一些其他的相关的第三方jar包。

项目还没开始,我们的lib目录下就有百八十的jar包,有用的、没用的、各个版本相互冲突的。没冲突,删吧,不知道哪些个之间有关联,不删吧,项目臃肿的不行。还好,感谢开源界的大神,给我们提供了Maven、Ant、gradle优秀的项目管理和项目构建工具,它让我们更为方便的来管理和构建我们的项目。

下面会对Maven进行学习,主要学习要点:

1. Maven快速入门;

2. Maven核心知识;

3. Maven建立Web项目。

本文主要介绍Maven以及它的环境搭建。

一、Maven介绍及环境搭建

1. Maven的概念

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

简单来说,Maven可以帮助我们更有效的管理项目。

下载Maven,需要访问:maven.apache.org

在左侧列表download选项下:

Maven3.3版本需要JDK1.7以上的支持。

下载之后,解压查看相应的目录:

查看bin目录:(bin目录包含mvn的运行脚本)

bin目录包含mvn的运行脚本。在windows命令行中输入mvn,就会调用这个脚本。

m2.conf 这是一个配置文件。

查看boot目录:(boot目录包含一个类加载器的框架)

boot目录包含一个类加载器的框架,Maven是使用它来加载自己的类库。

查看conf目录:(conf是配置文件目录)

conf是配置文件目录,比如我们以后经常用到的setting.xml

lib目录下:(包含Maven平时所用到的类库,除了自身的,还包含第三方依赖的类库)

2. maven环境变量配置

环境变量分为用户变量和系统变量。

如果你的电脑是多人使用的,那么为了不影响他人,你就应该在用户变量中进行设置。(用户变量:属于电脑各个用户的变量。)

如果你的电脑是私人的,就可以在系统变量进行设置。(系统变量:所有电脑用户共用的变量。)

  • M2_HOME:变量值设为maven安装目录;
  • path:设置为%M2_HOME%\bin;

如何验证环境变量是否配置成功?

打开cmd命令提示符dos:输入mvn -v

如果可以查看到相关的版本信息,就说明环境变量配置成功。

二、构建Maven版的Hello World

先了解Maven的目录结构:

pom.xml

注:

groupId的值就是项目的包名
artifactId的值就是模块名,这里一般建议使用项目名
version的值是版本名 一般是快照

使用maven构建的一个小例子:
1:使用maven约定的构建目录结构
2:按照约定的目录结构构建项目
3:编写简单的测试代码
4:配置pom配置文件
5:运行maven基本命令管理对应的小例子
6:根据命令的提示信息解决构建项目中犯的错误,并且理解每个命令实际做了那些具体的事情。

三、Maven常见构建命令

  • mvn -v :查看Maven版本
  • mvn compile:编译
  • mvn test: 测试
  • mvn package:打包
  • mvn clean: 清除maven生成的target目录(target中存放的是项目经过编译的字节码文件和测试报告)
  • mvn install:将生成的jar安装到本地仓库中

maven编译代码的流程:
1. 执行mvn compile 命令编译java代码文件
2. 如果发现代码中引用到了其他的包文件(jar包)
3. 首先回去核心配置文件pom.xml文件中去查找相应的配置依赖
4. 根据配置依赖先去本地的仓库中查找jar包资源
5. 如果本地不存在,则会再去联网到maven的中央仓库中查找

四、自动创建目录骨架

创建目录骨架的方式有两种。

Maven为我们提供了archetype插件,用于创建符合Maven规定的目录骨架。

根据Maven规定,要在:

  • mvn archetype:generate:运行命令后提示输入版本,groupId,artifactId,version,package
  • mvn archetype:generate -DgroupId:组织名,公司域名反写+项目名 -DartifactId:项目名-模块名 -Dversion:版本 -Dpackage:包名。一次性创建。

方式1:

方式2:直接设置完所有的参数,建立maven目录骨架

五、Maven中的坐标和仓库

  • 坐标的概念:构件

Maven世界中唯一标识一个构件的标识,一般由groupId/artifactId/version三部分组成,另外,作者建议artifactId和项目名要一致,这样更清晰,也更容易查找。

  • 仓库的概念:

放置各种依赖的地方。仓库分为两种:本地仓库和远程仓库。

本地仓库找不到我们需要的构件,它会去中央仓库查找,查找到之后就会下载到本地仓库中

C:\apache-maven-3.3.9\lib\maven-model-builder-3.3.9\org\apache\maven\model\pom-4.0.0.xml——Maven为我们提供的超级pom我们所有的pom都会记录这个pom这里记录的有全球的中央仓库 ,中央仓库中放置了几乎所有开源项目的资源——jar包。

  • 镜像仓库:

Maven的中央服务器都是放置在国外的,有时我们不能访问外网,国内也有他的镜像仓库,这样就能更好的访问了。

apache-maven-3.3.9\conf\settings.xml这个文件中就配置着镜像的信息,可以配置国内的镜像文件的路径,这样就能更快更好的访问了。

  • 更改仓库的位置:

maven从远程中央库下载的资源默认放在了C:\Users\Administrator\.m2\repository这个目录,为了安全性,一般不会选择放在c盘下可以修改本地仓库的目录,指定到更安全的目录下,另外,setting.xml这个文件也需要另存一份,这是为了更新版本的时候不用重新修改这个配置文件。

六、在eclipse中安装Maven插件以及创建Maven项目

如果电脑安装的是eclipse4.0或者myeclipse,就不用再安装Maven插件了。

查看自己的eclipse是否安装插件:

eclipse 》》preferences ,查看是否有Maven选项。

eclipse默认运行在jre上,而maven插件需要jdk的支持。

步骤:

  1. 下载maven插件,解压放至eclipse的dropins中或在线更新(http://m2eclipse.sonatype.org/sites/m2e , m2e-extras为扩展 )
  2. 在eclipse.ini中添加jdk
    -vm
    C:\Program Files\Java\jdk1.7.0_75\bin\javaw.exe
  3. 修改eclipse-选项中maven的maven目录和setting位置。
  4. 创建maven项目
  5. run as -->build as -->在goals中complile-->run
  6. 若报-Dmaven.multiModuleProjectDirectory 错误,则在选项-->java-->installed JRES中配置 -Dmaven.multiModuleProjectDirectory=$M2_HOME

七、Maven的生命周期和插件

  • 完整的项目构建过程包括:

    清理、编译、测试、打包、集成测试、验证、部署。

这几个步骤对应的都有插件来完成。

  • Maven生命周期:clean、compile、test、package、install
  • Maven的生命周期分为三个独立的生命周期(每一个生命周期有分为若干个阶段,其中defaul是最核心的一个):
    • clean:清理项目
    • default:构建项目
    • site: 生成项目站点
  • clean生命周期包含的阶段:
    pre-clean : 执行清理前的工作
    clean : 清理上一次构建生成的所有文件
    post-clean : 执行清理后的文件
  • default构建项目(最核心)

   default生命周期包含的阶段比较多,比较常用的就是compile、test、package、install

  • site生成项目站点:

    - pre-site 在生成项目站点之前要完成的工作
    - site 生成项目的站点文档
    - post-site在生成项目站点后要完成的工作
    - site-deploy发布生成的站点到服务器上

注意,Maven的生命周期对应的命令是顺序执行的,如果没有人为的顺序的一个个执行,那么Maven会默认的自动运行。

from: http://www.cnblogs.com/Qian123/p/5197750.html

项目管理利器——Maven阅读目录的更多相关文章

  1. 项目管理利器——Maven

    假设公司要开发一个新的Web项目,使用目前流行的struts2.spring.MyBatis进行新项目开发.那么接下来首先要进行的工作就是各个框架的jar包的下载.大家通常的做法是先到struts2的 ...

  2. 项目管理利器-Maven(Windows安装)

    什么是Maven? 安装Maven环境: 下载地址:https://maven.apache.org/download.cgi Maven3.3+JDK1.7以上版本 下载windows版本 解压到本 ...

  3. maven课程 项目管理利器-maven 3-2 maven自动建立目录骨架

    使用cmd创建maven目录的两种方式: 使用archetype插件 1 按照提示进行选择  步骤: a 进入指定目录 b mvn archetype:generate --创建项目目录 c ente ...

  4. 项目管理利器---Maven

    Maven快速入门 maven介绍 maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建.报告和软件的项目管理工具.简单来说,maven可以帮助我们更有效的管理项目,也是一套 ...

  5. maven课程 项目管理利器-maven 1-2maven介绍和环境搭建

    maven简介: Maven是基于项目对象模型(POM),通过一小段描述信息来管理项目的构建.报告和文档的软件项目管理工具. 1.1 Maven安装文件夹的结构 bin 目录放置包含mvn的运行脚本 ...

  6. maven课程 项目管理利器-maven 4-1 使用maven创建web项目 5星

    本节主要讲了使用maven创建web项目 主要分这三大类: 1 新建maven  web项目 2 后续处理普通java项目转web项目需要关注的点 3 maven特色转web需要关注的点 1 新建ma ...

  7. maven课程 项目管理利器-maven 3-5 maven生命周期和插件 4星

    本节重点: maven插件的使用 本节主要内容: 1 maven生命周期 2 maven插件的使用 3 零散知识点 1 maven生命周期  maven生命周期主要有三个: a clean 清理项目 ...

  8. maven课程 项目管理利器-maven 3-4 eclipse安装maven插件和新建maven项目

    本节主要讲了两个主要内容, 1       eclipse安装maven插件 2 新建maven项目 3 本人实操 1       eclipse安装maven插件 eclipse4.0以上和myec ...

  9. maven课程 项目管理利器-maven 3-1 maven常用的构建命令

    mvn -v 查看mvn版本 mvn compile  编译 mvn test 测试 mvn package 编译,打包(这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功 ...

随机推荐

  1. React module methods with passing props to child or invoking callback to parent.

    Some code samples for this pupose: import React from "react"; import MyDemo from "./m ...

  2. stdafx.h、stdafx.cpp的作用

    这两个文件用于建立一个预编译的头文件".PCH"和一个预定义的类型文件"STDAFX.OBJ".由于MFC体系结构非常大,各个源文件中都包含许多头文件,如果每次 ...

  3. hdu 1686 Oulipo (kmp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1686 题目大意:寻找子链在母链中出现的次数. #include <iostream> #i ...

  4. DDCTF - evil 一个伪装成docx的exe

    0x01 题目描述 题目比较简单,不过这种题感觉比单纯的逆向算法来有意思的多,所以记录一下~ 0x02 脱壳 先拖到IDA瞅一眼,发现加壳了 用PEID查一下是什么壳,但是没有查出来.使用String ...

  5. appium===安卓SDK下载很慢的解决办法

    方法一:http://www.apkbus.com/forum.php?mod=viewthread&tid=240851 方法二:http://www.androiddevtools.cn/

  6. linux下rm命令删除文件名中包含特殊字符的文件【转】

    转自:http://blog.itpub.net/143526/viewspace-1060083/ 1. 删除带“-”的文件名的方法 2. 删除包含其它特殊字符的文件 3. 删除系统打不出的乱码文件 ...

  7. python模块之copy

    提供浅拷贝和深拷贝两种模式. =>copy(x):返回x的浅拷贝 =>deepcopy(x):返回x的深拷贝 浅拷贝和深拷贝: 浅拷贝复制不变对象,引用可变对象(如列表和字典): 深拷贝复 ...

  8. KVM(一)简介及安装

    1. KVM 介绍 1.0 虚拟化简史 其中,KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Lin ...

  9. python类的__new__和__init__

    python的类,和其他语言有一点不太一样,就是,他把新建一个类和初始化一个类,分成了两个方法: __new__ __init__ 当然,想想就知道,肯定是__new__先发生,然后才是__init_ ...

  10. Redis-4.0.8 readme.md

    This README is just a fast *quick start* document. You can find more detailed documentation at [redi ...