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