maven作用流程
首先根据坐标查找本地仓库,如果找到,就直接使用。如果没有,
如果远程仓库存在该文件,Maven会将其下载到本地仓库中,继而使用。
如果尝试过所有远程仓库之后,Maven还是没能够下载到该文件,它就会报错。
传送门
maven repository
http://maven.apache.org/guides/introduction/introduction-to-repositories.html
maven mirror
http://maven.apache.org/guides/mini/guide-mirror-settings.html
maven setting.xml
http://maven.apache.org/settings.html
maven pom.xml
https://maven.apache.org/pom.html
1.mvn 命令
-v 查看maven版本
compile 编译
test 测试
package 打包
clean 删除target
install 安装jar包到本地仓库中 将package后的内容,
拷贝到.m2/repository
2.maven archetype快速初始化
1. mvn archetype:generate 按照提示进行
2. mvn archetype:generate
-DgroupId=com.thinvent.jails
-DartifactId=Jails-third
-Dpackage=com.thinvent.jails
3.maven仓库
仓库
本地仓库
默认是用户家目录下的.m2/repository
可以通过修改settings.xml中的 localRepository设置
远程仓库
一般仓库
镜像仓库
为了解决网络和安全问题搭建的仓库。
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
4.完整的maven项目过程
清理工作clean
pre-clean 清理前工作
clean 清理上次构建生成的文件
核心过程default
compile 编译代码
test 编译测试
package 项目打包
install 安装到本地
生成站点site
pre-site 准备生成
site 生成文档
post-site 文件操作
site-deploy 发布站点到服务器
5.pom.xml文件解析
modelVersion POM版本
groupId 反写的公司网址+项目名
artifactId 项目名+模块名
version 第一个0便是大版本号
第二个0表示支版本号
snapshot 快照版
alpha 内部测试版
bate 公测版
Release 稳定版
GA 正式版
packaging 打包方式,默认是jar
name 项目名
url 项目地址
description 项目描述
developers 开发人员
liensces 许可证
organization 组织
dependencies 项目依赖列表
dependency 项目依赖
groupId
artifactId
version
type
scope 依赖作用域,classpath类型
optional 依赖是否可选
exclusions 排除传递依赖列表,默认是传递依赖的。
exclusion
dependencyManagement 依赖的管理,用户提取多模块依赖中的公用内容
build 构建
plugins 插件列表
plugins 插件
groupId
artifactId
version
parent 用户子依赖继承
modules 多模块只当
6.Maven ClassPath
maven中指定6种classpath 编译运行和测试
compile 编译和测试
runtime 执行和测试
test 测试
system 与本机相关,可移植性差
import 只用在dependencyManagment种
7.maven传递依赖
A依赖B,B依赖C,那么A依赖C。
8.maven依赖冲突
依赖路径短路优先。
路径长度相同,谁先声明则使用谁
9.maven聚合
modules 多个项目一起执行。一起进行maven操作
10.maven继承
在聚合时,多个项目公用的dependency,可以将dependency放置到
dependencyManagement中,在其他pom中使用parent标签引用并继承它。