项目管理利器——Maven阅读目录

阅读目录

假设公司要开发一个新的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

时间: 2024-10-14 09:41:41

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

项目管理利器——Maven

假设公司要开发一个新的Web项目,使用目前流行的struts2.spring.MyBatis进行新项目开发.那么接下来首先要进行的工作就是各个框架的jar包的下载.大家通常的做法是先到struts2的官网下载struts2的jar包,再到spring的官网下载spring的jar包,再到MyBatis官网下载MyBatis的jar包以及一些其他的相关的第三方jar包. 项目还没开始,我们的lib目录下就有百八十的jar包,有用的.没用的.各个版本相互冲突的.没冲突,删吧,不知道哪些个之间有关联,

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

什么是Maven? 安装Maven环境: 下载地址:https://maven.apache.org/download.cgi Maven3.3+JDK1.7以上版本 下载windows版本 解压到本地即可,对其中的文件夹进行讲解 bin目录:包含mvn的运行脚本 boot目录:包含一个类加载器的框架 conf目录:是配置文件目录 lib目录:包含maven平时所用到的所有类库 配置环境变量 M2_HOME:安装家目录D:\maven path:D:\maven\bin 检查安装是否成功 m2

maven课程 项目管理利器-maven 3-7 maven依赖范围 2星

本节主要讲了maven的依赖范围: 在pom.xml   dependency标签的scope中.eclipse中有编译的路径,maven中有编译,运行,测试的路径. 1 scope为test,为测试路径,多为junit jar包 2 scope为compile,为默认级别,编译测试运行都有效 3 scope为provided,编译和测试的时候有效 4 scope为runtime,运行和测试的时候有效  (如:jdbc驱动的实现) 5 scope为system,和compile一致,但是可移植能

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

mvn -v 查看mvn版本 mvn compile  编译 mvn test 测试 mvn package 打包 mvn clean  删除target mvn install     安装jar包到本地仓库中 原文地址:https://www.cnblogs.com/1446358788-qq/p/9611044.html

maven课程 项目管理利器-maven 3-9 maven依赖优先原则 4星

依赖相同的jar包,版本不一致,优先选择哪个版本呢? 1 路径短的优先 如A依赖B,B依赖C,C依赖commons.jar 1.0 A依赖D,D依赖commons.jar 2.0 那么优先解析2.0,编译的jar包为2.0 2 路径长短相同,先声明先优先解析 原文地址:https://www.cnblogs.com/1446358788-qq/p/9902495.html

项目管理之Maven入门篇

除了Ant之外,Maven是最普遍的项目管理工具,日常的项目开发中无不见其身影,下面简单介绍下Maven的安装和基本的命令. 1.下载Maven安装文件apache-maven-3.2.3-bin.zip,目前最新版本是3.2.3.解压到指定目录. 2.设置环境变量 M2_HOME:  D:\JAVA\apache-maven-3.2.3-bin\apache-maven-3.2.3 Path:D:\JAVA\apache-maven-3.2.3-bin\apache-maven-3.2.3\b

项目管理工具——Maven

什么是Maven? Maven是一个项目管理工具,它包含了一个项目对象模型(POM),一组标准集合,一个项目生命周期,一个依赖管理系统和用来运行定义在生命周期阶段中插件目标的逻辑. Maven能解决什么问题? 构建工程 管理jar包 编译代码 自动执行单元测试 打包.生成报表 部署项目 Maven标准目录结构 src/main/java 核心代码部分 src/main/resources 配置文件部分 src/test/java 测试代码部分 src/test/resources 测试配置文件部

Maven 学习 -- 目录

1. Maven 学习-入门 2. Maven学习-目录结构 3. Maven学习-处理资源文件 啦啦啦

阅读目录

阅读目录 1. # 2. ? 3. & 回到顶部 1. # 10年9月,twitter改版.一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为http://twitter.com/username改版后,就变成了http://twitter.com/#!/username 这是主流网站第一次将"#"大规模用于重要URL中.这表明井号(Hash)的作用正在被重新认识.本文根据HttpWatch的文章,整理与井号有关的所有重要知识点.一.#