23Maven

Maven

1.介绍

Maven是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管
理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

2.Maven的两个精典作用

1.Maven的依赖管理

Maven的一个核心特性就是依赖管理。当我们涉及到多模块的项目(包含成百个模块或者子项目),管理依赖就变成一项困难的任务。Maven展示出了它对处理这种情形的高度控制。传统的 WEB项目中,我们必须将工程所依赖的 jar包复制到工程中,导致了工程的变得很大。那么maven工程是如何使得工程变得很少呢?
maven工程中不直接将 jar包导入到工程中,而是通过在 pom.xml文件中添加所需 jar包的坐标,这样就很好的避免了 jar直接引入进来,在需要用到 jar包的时候,只要查找 pom.xml文件,再通过 pom.xml文件中的坐标,到一个专门用于”存放 jar包的仓库”(maven仓库)中根据坐标从而找到这些 jar包,再把这些 jar包拿去运行。
通过 pom.xml文件配置要引入的 jar包的坐标,再读取坐标并到仓库中加载 jar包,这样我们就可以直接使用 jar包了,为了解决这个过程中速度慢的问题,maven中也有索引的概念,通过建立索引,可以大大提高加载 jar包的速度,使得我们认为 jar包基本跟放在本地的工程文件中再读取出来的速度是一样的。这个过程就好比我们查阅字典时,为了能够加快查找到内容,书前面的目录就好比是索引,有了这个目录我们就可以方便找到内容了,一样的在 maven仓库中有了索引我们就可以认为可以快速找到 jar包。

2.项目的一键构建

我们的项目,往往都要经历编译、测试、运行、打包、安装,部署等一系列过程。

什么是构建:

指的是项目从编译、测试、运行、打包、安装,部署整个过程都交给maven进行管理,这个

过程称为构建。

一键构建:

指的是整个构建过程,使用 maven一个命令可以轻松完成整个工作。

Maven规范化构建流程如下:

通过 tomcat:run的这个命令,我们发现现在的工程编译,测试,运行都变得非常简单。

3.Maven配置

配置 MAVEN_HOME ,变量值就是你的 maven安装的路径(bin目录之前一级目录)

在Path中%MAVEN_HOME%\bin

测试 mvn -v

4.Maven工程的认识

src/main/java ——存放项目的.java文件
src/main/resources ——存放项目资源文件,如spring, hibernate配置文件
src/test/java ——存放所有单元测试.java文件,如JUnit测试类
src/test/resources  ——测试资源文件
target ——项目输出位置,编译后的class文件会输出到此目录
pom.xml——maven项目核心配置文件

5.Maven常用命令

1.compile

compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下

2.test

test是maven工程的测试命令mvn test,会执行 src/test/java下的单元测试类。

3.clean

clean是maven工程的清理命令,执行clean删除 target目录及内容。

4.package

package是maven工程的打包命令,对于java工程执行package打成jar包,对于 web工程打成 war包

5.install

install是maven工程的安装命令,执行install将maven打成 jar包或war包发布到本地仓库

6.Maven指令的生命周期

maven对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,

这三套生命周期分别是:

Clean Lifecycle 在进行真正的构建之前进行一些清理工作。

Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。

Site Lifecycle 生成项目报告,站点,发布站点。

7.坐标定义

在 pom.xml中定义坐标,内容包括:groupId、artifactId、version,详细内容如下:
<!--项目名称,定义为组织名+项目名,类似包名--> 
<groupId>cn.itcast.maven</groupId> 
<!-- 模块名称   --> 
<artifactId>maven-first</artifactId> 
<!-- 当前项目版本号,snapshot为快照版本即非正式版本,release为正式发布版本     --> 
<version>0.0.1-SNAPSHOT</version> 
<packaging > :打包类型
		jar:执行 package会打成  jar包
		war:执行 package会打成  war包
		pom :用于  maven工程的继承,通常父工程设置为   pom 

8.pom基本配置

pom.xml是  Maven项目的核心配置文件,位于每个工程的根目录,基本配置如下:
<project > :文件的根节点   . 
<modelversion > :   pom.xml使用的对象模型版本
<groupId > :项目名称,一般写项目的域名
<artifactId > :模块名称,子项目名或模块名称
<version > :产品的版本号   . 
<packaging > :打包类型,一般有  jar、war、pom 等
<name > :项目的显示名,常用于   Maven 生成的文档。
<description > :项目描述,常用于   Maven 生成的文档
<dependencies> :项目依赖构件配置,配置项目依赖构件的坐标
<build> :项目构建配置,配置编译、运行插件等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值