目录
- 了解maven
- maven的作用
- maven仓库
- 本地配置
- 添加远程仓库
- 依赖搜索顺序
- 定制包到本地仓库
- pom文件
- 依赖管理原则
- 构建声明周期
- 插件
了解maven
maven的作用
- maven采取约定大于配置的原则,规范了一套标准的javaweb项目结构
- maven提供了完备的包管理功能,不用到处找jar包了
- maven提供了一套完整的项目构建声明周期,让开发人员一键式一站式测试打包发布等.
maven仓库
maven仓库分为
本地(local)
中央(central)
远程(remote) :定制的仓库,存放一些没在中央仓库中的包,比如公司自己的框架包
本地配置
本地maven的配置非常灵活,可以创建多个用于不同开发环境的配置文件.配置文件中指定不同的本地仓库地址和中央仓库地址 maven仓库配置
添加远程仓库
<project ...><repositories><repository><id>java.net</id><url>https://maven.java.net/content/repositories/public/</url></repository></repositories>
</project>
依赖搜索顺序
- 搜索本地仓库
- 搜索中央仓库
- 搜索远程仓库
- 三种仓库中都没有所需包,抛出错误
定制包到本地仓库
一些中央仓库和远程仓库没有的包,想使用的话要手动导入本地仓库,比如想使用kaptcha包(用于生成验证码图片的工具)
下载 “kaptcha-2.3”,得到jar包
执行maven命令,加入本地仓库
mvn install:install-file -Dfile=/Users/hans/Downloads/kaptcha-2.3.jar -DgroupId=com.google.code -DartifactId=kaptcha -Dversion=2.3 -Dpackaging=jar
加入成功,声明坐标
<dependency><groupId>com.google.code</groupId><artifactId>kaptcha</artifactId><version>2.3</version>
</dependency>
pom文件
<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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><!-- 模型版本 不重要 --><modelVersion>4.0.0</modelVersion><!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group --><groupId>com.companyname.project-group</groupId><!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 --><artifactId>project</artifactId><!-- 版本号 --><version>1.0</version><!-- 打包方式 jar/war/pom--><packaging>war</packaging>
</project>
POM标签大全
依赖管理原则
- 如果两个依赖版本在依赖树里的深度是一样的时候,第一个被声明的依赖将会被使用。
- 依赖具有传递性
- 子类声明的依赖版本覆盖父类声明的依赖版本