一、MAVEN下载
1.下载地址:http://maven.apache.org/download.cgi
二、MAVEN安装
1.解压下载的压缩包
2.配置MAVEN目录的bin目录路径到环境变量
3.在DOS中输入mvn -v检测是否安装成功,成功会显示mvn环境信息
三、第一个项目
1.项目基本目录结构
-package 是类文件对应的包目录
1.在main的java中建立类HelloWorld
package com.lexin.maven01.model;public class HelloWorld { public String sayHello() { return "Hello World!"; }}
2.在test的java中建立测试类HelloWorldTest
package com.lexin.maven01.model;import org.junit.*;import org.junit.Assert.*;public class HelloWorldTest { @Test public void testHello() { Assert.assertEquals("Hello World!",new HelloWorld().sayHello()); }}
3.在src同级目录中新建pom.xml文件
4.0.0 com.lexin.maven01 maven01-model 0.0.1-SNAPSHOT UTF-8 junit junit 4.10
四、MAVEN常用命令
mvn -v:查看MAVEN版本
mvn compile进行编译:编译成功后会生成target目录,里面有class文件,报告等
mvn test进行测试:测试成功后会在target目录下的test-classes目录产生相应的测试类的class文件
mvn package打包:会自动将项目打包成jar文件,输出路径为target目录
mvn clean:删除target目录
mvn install:安装jar包到本地仓库中
五、自动构建目录的两种方式
1.archetype:generate :按照提示进行选择
2.archetype:generate -DgroupId=组织名.公司网址的反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=代码所存在的包名
六、MAVEN的坐标和仓库
坐标:即groupId、artifactId、version所构成的一个独有的坐标
仓库:
1.仓库分为本地仓库和远程仓库
1)MAVEN的默认仓库地址
在MAVEN目录下的lib目录下的maven-model-builder-3.5.0.jar文件中的pom文件是MAVEN的默认pom,下面就是MAVEN默认的远程仓库地址
central Central Repository https://repo.maven.apache.org/maven2 default false
2)MAVEN的镜像仓库地址配置
在MAVEN目录下的conf目录下的settings.xml文件中<mirrors>标签中的内容就是镜像地址的配置
mirrorId repositoryId Human Readable Name for this Mirror. http://my.repository.com/repo/path
3)更改本地仓库的位置
MAVEN默认的本地仓库位置为C:\Users\用户目录\.m2\repository
在settings.xml文件中<localRepository>标签中修改本地仓库位置,注意路径为/反斜杠分隔!
六、eclipse安装MAVEN插件
1.下载MAVEN插件放入eclipse目录下dropins目录中
2.重启eclipse
3.点击window --> preferences --> MAVEN :MAVEN需要使用JDK,如未配置JDK需要配置好JDK,具体步骤如下:
1)打开eclipse根目录下的eclipse.ini文件
2)添加如下代码
-vmjavaw.exe路径
4.修改eclipse默认JRE
5.更改MAVEN默认配置
1)window-->preferences-->MAVEN-->installations:选择本地MAVEN安装目录
2)window-->preferences-->MAVEN-->User Setting:配置MAVEN配置文件,选择MAVEN的Setting文件
6.新建一个MAVEN项目
1)配置工作空间路径
2)配置项目Id
3)右击pom.xml-->Run As-->MAVEN build...-->Goals输入命令如:compile或者package等等
7.大功告成!
七、MAVEN生命周期
1.clean:清理项目
1)pre-clean:执行清理前的工作
2)clean:清理上一次构建生成的所有文件
3)post-clean:执行清理后的文件
2.default:构建项目(最核心)
compile test package install
3.site:生成项目站点
1)pre-site:在生成项目站点前要完成的工作
2)site:生成项目的站点文档
3)post-site:在生成项目站点后要完成的工作
4)site-deploy:发布生成的站点到服务器上
4.在执行某一阶段时,会将该阶段之前的阶段依次执行
八、pom.xml常用元素介绍
<project>是pom的跟元素,包含了pom的约束信息
<modelVersion>指定了当前pom的版本,也是pom必须的元素
<groupId>主项目标识,反写的公司网址+项目名
<artifact>模块标识,项目名+模块名
<version>项目版本号,一般由3个数字表示,第一个0表示大版本号,第二个0表示分支版本号,第三个0表示小版本号
例:0.0.1
snapshot:快照
alpha:内测
beta:公测
Release:稳定
GA:正式发布
<packaging>表示打包方式,默认为打包成JAR,也可打包成其他类型,如:war zip pom等
<name>项目描述名
<url>项目地址
<description>项目描述
<developers>开发人员列表
<licenses>许可证信息
<organization>组织信息
<dependencies>依赖列表
<dependency>依赖项:可指定依赖包的groupId atifactId version type scope(依赖范围,有效范围)等信息
<optional>有true false两个值,默认为false,用于设置依赖是否可选
<exclusions>排除依赖传递列表
<exclusion>排除依赖传递项
<dependencyManagement>依赖管理
<build>为构建的行为提供支持
<plugins>插件列表
<plugin>插件项,需要指定坐标信息groupId atifactId version等
<parent>用于子模块对于父模块pom的继承
<modules>模块列表,聚合运行多个的MAVEN项
<module>模块项
4.0.0 反写公司网址+项目名 项目名+模块名
九、MAVEN依赖
MAVEN依赖范围(scope)一共有六种:
1.compile:默认的范围,编译测试运行都有效
2.provided:在编译和测试的时有效
3.runtime:在测试和运行时有效
4.test:只在测试时有效
5.system:与本机系统有相关联,可移植性差
6.import:导入的范围,它只使用在dependencyManagement中,表示从其他的POM中导入dependency的配置
依赖的传递性:需要将父类pom install到本地仓库中, 子类pom在<dependency>中加入父类依赖坐标 即可调用
在<dependency>中运用<exclusions> <exclusion>来排除所不需要的父类pom
依赖冲突:
1.短路优先:
有以下两条依赖:A->B->C->X(JAR)和A->D->X(JAR),那么A-D-X这条优先解析
2.先声明优先:
在依赖路径长度相同时,按照代码顺序,先声明依赖谁就继承谁的依赖
十、聚合和继承
MAVEN聚合:聚合实际上是对多个项目同时进行做处理,比如编译、打包等。做法如下:创建一个新的maven项目,用于做其它项目的聚合,然后把pom.xml文件里的package标签里的jar改成pom,并去掉依赖,然后添加modules把其它项目引进来。
MAVEN继承: 类似java继承,将重复性的写入一个父类pom中,在父类中<packaging>为pom
子类中使用<parent>标签来将父类引入项目中
注: 对于<version>,可在<properties>中配置标签<spring.version>
并在<version>中用${spring.version}来进行提取。
十一、用MAVEN构建第一个WEB项目
创建web项目的过程:1、使用maven创建一个web类型的maven项目。2、添加servlet插件的依赖pom.xml。3、添加src源文件夹。4、修改jer的版本。5、查看src输出的文件夹。6、添加服务器插件的依赖到pom.xml。