现在很多项目的研发管理都转为使用maven进行构建和管理。抽空学习了一下maven,模块化的管理思想,灵活的构建,理解之后,还是挺简单的,非常适合大团队,依赖复杂的项目。
maven学习整个过程是按照下图来学习的,看了些视频也跟着做了点小例子,还未在实际上的项目上使用,不过应该很快就是使用。
maven学习全景图:
[img]
[/img]
一、maven初步
1) maven安装
1.下载maven3安装包
地址:http://maven.apache.org/
2.下载完成后,解压到任意目录下,如:D:\softwares\apache-maven-3.1.1
3.将maven下的bin目录加入到系统环境变量中,即D:\softwares\apache-maven-3.1.1\bin加入到环境变量的path中。
4.在cmd命令行中输入mvn -version,输出mvn版本信息,能够正常输出则说明maven安装成功。
2)配置本地仓库
maven最主要的功能就是管理项目的依赖。安装完maven之后,使用maven管理项目依赖,需要配置本地仓库,项目的各种依赖包将会统一管理在本地仓库中。
1.maven安装目录下的conf目录的setting.xml中
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>D:/softwares/Maven3.0.4/repository</localRepository>
localRepository节点是指本地仓库的含义,其值表示本地仓库所在的目录。该目录可以指定为本机的任意目录。我是指定的D:/softwares/Maven3.0.4/repository目录下。
注意:该目录下的setting.xml中的配置是本机中所有的使用maven管理的项目通用的配置。
2.修改系统盘下当前用户目录下.m2目下的
C:\Users\administrator\.m2\setting.xml文件中的localRepository节点值。该配置文件是指对当前用户的项目起作用。
3.进入本地仓库目录D:/softwares/Maven3.0.4/,将上述setting.xml也复制一份。
3)使用mave命令创建项目
使用maven命令可以直接创建符合maven约定的项目骨架。对于一个项目而言,使用maven管理,最核心的是pom.xml文件。 POM包括了所有的项目信息。
通过提供的命令可以完成项目的创建和管理。下面通过使用maven命令来创建项目熟悉maven命令的用法。
1.新建项目目录,如D:/mystudy
2.新建pom.xml文件,内容如下:
maven管理项目约定配置文件为pom.xml(project object model),与ant中的build.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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.deific.mystudy</groupId>
<artifactId>mystudy-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
modelVersion:表示模式版本,目前固定为4.0.0;
groupId:表示本项目组Id,通常是组织包名,如com.deific.mystudy
artifactId:表示本项目的模块名。(模块编程)如mystudy-maven表示是项目mystudy中的mystudy-maven模块,是有关maven学习的模块。
dependencies:表示本项目所依赖的所有其他项目(或jar包)
dependency:表示本项目依赖的某一个依赖项目
scope:表示这个依赖包的范围,有四个值
1、test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖
2、compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去
3、provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突
4、runtime在运行的时候依赖,在编译的时候不依赖
2.使用mavne命令管理项目
mvn compile:编译项目代码,编译的class文件在target目录下
mvn package:将项目代码打包
mvn clean:清空项目编译结果
mvn install:将项目编译,打包并上传的本地仓库中
4) maven的默认中央仓库
1.安装完maven之后,maven配置了默认的中央仓库,需要通过互联网访问。
中央仓库的配置目录:
${maven_home}/lib/maven-model-builder-3.1.1.jar\org\apache\maven\model\pom.xml