1.pom.xml文件介绍.
1.1project标签和modelVersion标签介绍.
-
pom.xml文件是maven的核心文件,POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述如何构建,声明项目依赖;;
1.2依赖坐标介绍.
-
依赖的坐标主要是由:groupid、artifiactId、version三部分组成,简称:"gav",坐标概念来自数学;
-
坐标作用:确定资源,是资源的唯一标识。 在maven中,每个资源都是坐标,且坐标值是唯一的。如下这个坐标:
-
dependencyManagement:依赖管理器;
-
dependencies:依赖列表;
-
groupId:组织名称。 公司,团体或者单位的标识。 这个值常使用的公司域名的反写;
-
artifactId:项目名称,本项目的唯一ID,一个 groupId下面可以包含多个项目,就是靠 artifactId来区分的;
-
version:版本,项目的版本号,使用三位数字组成。主版本号.次版本号.小版本号,如:.2.5。注意:版本号中有"-SNAPSHOT",表示快照版,不是稳定的版本;而 "RELEASE" 则是稳定版/发行版的意思。
-
scope:控制 dependency 元素的使用范围。通俗的讲,就是控制 Jar 包在哪些范围被加载和使用。常用的值有如下:
-
compile(默认):含义:compile 是默认值,如果没有指定 scope 值,该元素的默认值为 compile。被依赖项目需要参与到当前项目的编译,测试,打包,运行等阶段,打包的时候通常会包含被依赖项目。
-
provided:被依赖项目理论上可以参与编译、测试、运行等阶段,相当于compile,但是再打包阶段做了exclude(排除)的动作。适用场景:例如, 如果我们在开发一个web 应用,在编译时我们需要依赖 servlet-api.jar,但是在运行时我们不需要该 jar 包,因为这个 jar 包已由应用服务器提供,此时我们需要使用 provided 进行范围修饰。
-
runtime:表示被依赖项目无需参与项目的编译,但是会参与到项目的测试和运行。与compile相比,被依赖项目无需参与项目的编译。适用场景:例如,在编译的时候我们不需要 JDBC API 的 jar 包,而在运行的时候我们才需要 JDBC 驱动包。
-
test:表示被依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。适用场景:例如,Junit 测试。
-
system:system 元素与 provided 元素类似,但是被依赖项不会从 maven 仓库中查找,而是从本地系统中获取,systemPath 元素用于制定本地系统中 jar 文件的路径。例如:
-
-
-
import:它只使用在<dependencyManagement>中,表示从其它的pom中导入dependency的配置。适用场景:模块的继承关系中。
-
1.3项目打包参数配置.
-
Maven项目打包的打包方式及生成的包名由如下内容决定:
-
packing标签里面指定了打包的方式,有 jar、war、ear、pom等,默认的是 jar;
-
打包方式不同,生成的包名不同:
-
如果是通过 package命令打包,那么在 target里面生成的包名是:sping.war;
-
如果是通过 install命令打包,会在 target里面生成一个包,包名是:sping.war,同时还会在本地仓库的位置生成一个包,包名是:sping-1.0-SNAPSHOT.war。
-
-
打包后的jar包名字生成规范:artifactId.packaging,如当前的配置,项目打包后生成的包名就是:spring.war。
1.4插件坐标介绍.
-
pluginManagement:插件管理器;
-
plugins:插件列表;
-
plugin:引入插件的依赖,一对<plugin>标签对应一个插件。
2.Maven常用操作介绍.
2.1Maven install操作.
-
Maven install:对项目进行编译打包,并将项目转换成为 maven依赖存放在本地 maven仓库中。同时还会在 target目录和本地仓库的目录里面生成 war包,如:
-
在 target目录里面的包名是:项目名.war,如:sping.war;也会存放在项目的本地工作空间的 taget目录里面;
-
在本地仓库里面的包名是:项目名-版本号.war,如:spring-1.0-SNAPSHOT.war。在本地仓库的路径:E:\repository\com\wuicy\spring\1.0-SNAPSHOT;
-
-
同时还会在项目的 targer目录里面和并将项目打包发布到本地工作空间的项目文件的 target目录里,如:
-
执行该命令的时候可以先执行clean操作清除原先打包的项目,再执行install操作。
2.2Maven test操作.
-
Maven test:对项目进行编译并执行test目录里面的测试代码。
2.3Maven clean操作.
-
Maven clean:清理 target目录。在进行真正的构建项目之前进行一些清理工作,移除所有上一次构建生成的文件。执行该命令会删除项目的target目录里面的文件。
2.4Maven package操作.
-
注意和 Maven install命令的区别;
-
Maven package:将项目打包,包名是:项目名.war,该操作只会将项目打包存放到本地工作空间的位置,不会在本地仓库粗放。如:
2.5Maven Reimport操作.
-
该操作是刷新更新 Maven项目,如果有依赖没下载好,就可以使用该命令刷新 Maven项目,重新下载依赖,不过该命令需要先下载 Maven Helper插件才有,项目名右键。如: