maven知识框架总结分享
2022-10-19 17:12:38 0 举报
AI智能生成
maven知识框架总结分享
作者其他创作
大纲/内容
何为maven
跨平台的项目管理工具
为什么需要maven
使构建过程标准化
子主题
能有序管理依赖
子主题
帮助管理各个项目原本散乱的项目信息
子主题
有一套既定的项目目录规则,降低学习成本
<b>POM</b>(Project Object Model)
作用
定义项目基本信息,用于描述项目如何构建,声明项目依赖等等
元素
modelVersion
指定了当前POM模型的版本,在Maven2、Maven3中它只能是4.0.0
<b>项目坐标定义</b>
groupId
定义了项目属于哪个组,一般与项目所在的组织或公司有关联,com.google.myapp
artifactId
定义了当前Maven项目在组中唯一的ID,myapp-util、myapp-web
version
指定了项目当前的版本
packaging
定义Maven项目的打包方式,非必填,jar、war、pom,默认为jar
classifier
定义构建输出的一些附属构建
name
可以声明一个对于用户更加友好的项目名称,非必填
使用Archetype生成项目骨架
依赖
配置
dependencies
dependency
groupId
artifactId
version
type
依赖的类型,默认为jar
scope
依赖的范围
optional
标记依赖是否可选
exclusions
用来排除传递性依赖
范围
compile
编译依赖范围,默认依赖范围,对编译、测试、运行三种classpath均有效
test
测试依赖范围,只对测试classpath有效,例子:JUnit
provided
已提供依赖范围,对于编译、测试classpath有效,例子:servlet-api
runtime
运行时依赖范围,对于测试、运行classpath有效
system
系统依赖范围,和provided依赖范围一致,需systemPath元素显示指定以来文件的路径,应慎用
import
导入依赖范围
传递性依赖
依赖调解(Dependency Mediation)
第一原则:路径最近者优先
第二原则:最先声明者优先
可选依赖
排除依赖
归类依赖
仓库
何为Maven仓库
一个统一存储所有Maven项目共享的构件的位置
基于简单文件系统存储
分类
本地仓库
远程仓库
中央仓库
私服
节省自己的外网带宽
加速Maven的构建
部署第三方构件
提高稳定性,增强控制
降低中央仓库的负荷
其他公共库
部署至远程仓库
生命周期
何为生命周期
为了对所有的构建过程进行抽象合统一
Maven的生命周期是抽象的
三套独立的生命周期
clean
pre-clean
clean
post-clean
default
validate
initialize
generate-sources
process-sources
generate-resources
process-resources
compile
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources
test-compile
process-test-classes
test
prepare-package
package
pre-integration-test
integration-test
post-integration-test
verify
install
deploy
site
pre-site
site
post-site
site-depoly
聚合
聚合模块的packaging的值必须为pom
其目的是为了能够一条命令构建多个项目
继承
Maven中POM的继承机制能让我们抽取出重复的配置
可继承的POM元素
groupId
version
description
organization
inceptionYear
url
developers
contributors
distributionManagement
issueManagement
ciManagement
scm
mailingLists
properties
dependencies
dependencyManagement
repositories
build
reporting
版本管理
0 条评论
下一页