首页 > 代码库 > MAVEN学习笔记
MAVEN学习笔记
一、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文件
<?xml version="1.0" encoding="UTF-8"?> <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lexin.maven01</groupId> <artifactId>maven01-model</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies> </project>
四、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默认的远程仓库地址
<repositories> <repository> <id>central</id> <name>Central Repository</name> <url>https://repo.maven.apache.org/maven2</url> <layout>default</layout> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
2)MAVEN的镜像仓库地址配置
在MAVEN目录下的conf目录下的settings.xml文件中<mirrors>标签中的内容就是镜像地址的配置
<mirror> <id>mirrorId</id> <mirrorOf>repositoryId</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://my.repository.com/repo/path</url> </mirror>
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)添加如下代码
-vm
javaw.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>模块项
<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"> <!-- 指定了当前pom的版本 --> <modelVersion>4.0.0</modelVersion> <groupId>反写公司网址+项目名</groupId> <artifactId>项目名+模块名</artifactId> <!-- 第一个0表示大版本号 第二个0表示分支版本号 第三个0表示小版本号 0.0.1 snaphost:快照 alpha:内测 beta:公测 Release:稳定 GA:正式发布 --> <version></version> <!-- 设置打包格式 默认是jar war zip pom --> <packaging></packaging> <!-- 项目描述名 --> <name></name> <!-- 项目地址 --> <url></url> <!-- 项目描述 --> <description></description> <!-- 开发人员列表 --> <developers></developers> <!-- 许可证信息 --> <licenses></licenses> <!-- 组织信息 --> <organization></organization> <!-- 依赖列表 --> <dependencies> <!-- 依赖项 --> <dependency> <groupId></groupId> <artifactId></artifactId> <version></version> <type></type> <!-- 依赖范围 --> <scope></scope> <!-- 设置依赖是否可选,默认为false, false子项目默认继承该依赖 true子项目必须显式引用该依赖 --> <optional></optional> <!-- 排除依赖传递列表 --> <exclusions> <!-- 排除依赖项 --> <exclusion></exclusion> </exclusions> </dependency> </dependencies> <!-- 依赖管理 ,用于定义在父模块中供子模块继承用--> <dependencyManagement> <dependencies> <dependency></dependency> </dependencies> </dependencyManagement> <!-- 为构建行为提供相应的支持 --> <build> <!-- 插件列表 --> <plugins> <!-- 插件项 --> <plugin> <groupId></groupId> <artifactId></artifactId> <version></version> </plugin> </plugins> </build> <!-- 用于子模块对于父模块pom的继承 --> <parent></parent> <!-- 聚合运行多个MAVEN项目 --> <modules> <module></module> </modules> </project>
九、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。
MAVEN学习笔记