maven笔记小抄
2021/12/17 23:25:41
本文主要是介绍maven笔记小抄,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
settings.xml
settings.xml位置
- 标签指定本地下载的依赖在本地的保存位置
${user.home}/.m2/repository表示C:\Users\username.m2\settings.xml
- idea中File | Settings | Build, Execution, Deployment | Build Tools | Maven的local repository可以覆盖
settings.xml内容
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <pluginGroups></pluginGroups> <proxies></proxies> <localRepository>.m2/repository</localRepository> <mirrors> <mirror> <id>settings-mirror</id> <url>https://maven.aliyun.com/repository/public</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> <profiles> <profile> <id>xxx-product</id> <repositories> <repository> <id>xxx-xxx-repo</id> <url>url</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> <repositories> </profile> </settings>
依赖下载基本优先级
- 本地所有Maven项目都复用一个本地仓库
- 中央仓库从远程仓库/私服(可配置)下载必要的构建
本地仓库 > 特定仓库reporitory的镜像mirror > settings中配置的仓库repository
详细优先级: local-repo > settings-profile-repository > pom-profile-repository > pom-repository > central
本地仓库 > 私服 (profile)> 远程仓库(repository)和 镜像 (mirror) > 中央仓库 (central)
Maven核心概念
仓库地址和坐标之间的关系
groupId com.huawei.xxxcommon.xxx artifactid xxx-service version 1.0 packaging jar(bundle war...) classifier 附加构建信息 groupid artifactid version是必须定义的 仓库地址: base + com/huawei/xxcommon/dmq/xxx-service/1.0/xxx.jar
Maven依赖优选原则
- 依赖最短路径优先原则
A-B-C-X{1.0} A-D-X{2.0} 选择X{2.0} - pom文件中声明顺序优先 先声明的依赖
- 覆写优先
子pom内声明的优先于父pom的依赖
maven生命周期
- 三套生命周期相互独立
clean(pre-clean clean post-clean) > default(validate compile test package verify install deploy) > site - 一套生命周期中,生命周期阶段前后依赖
- mvn命令指向生命周期阶段
maven插件
- Maven本身是一个框架,实际的任务都由插件完成
- 插件与生命周期阶段绑定,用户通过指定生命周期阶段就能够隐式的通过插件执行任务
- 打包类型(packaging)控制default生命周期与插件目标(plugin goal)的绑定
常见label的含义
- mirrorOf
为某个仓库repository做镜像, 填写的是repository id, * 匹配所有的仓库
相当于一个拦截器,它会拦截maven对remote repository的相关请求,
把请求里的remote repository地址,重定向到mirror里配置的地址
mirrorOf=“*” //刚才经过,mirror一切,你配置的repository不起作用了 mirrorOf=my-repo-id //镜像my-repo-id,你配置的my-repo-id仓库不起作用了 mirrorOf=*,!my-repo-id //!表示非运算,排除你配置的my-repo-id仓库,其他仓库都被镜像了 就是请求下载my-repo-id的仓库的jar不使用mirror的url下载,其他都是用mirror配置的url下载 mirrorOf=external:* //如果本地库存在就用本地库的,如果本地没有所有下载就用mirror配置的url下载
- packaging
项目的发布形式jar war rar pom maven-plugin ear ejb par
multi-moduls
maven3支持maven项目的多模块结构(聚合项目), 通常由一个父模块和若干个子模块构成
父模块必须以pom打包类型,同时以给出所有的子模块
- relativePath
是maven为了寻找父模块pom.xml所额外增加的一个寻找路径
<parent> <groupId>com.company.department.group</groupId> <artifactId>reponame</artifactId> <version>xxx-SNAPSHOT</version> <relativePath>../../../pom.xml</relativePath> </parent>
这篇关于maven笔记小抄的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-07如何利用看板工具优化品牌内容创作与审批,确保按时发布?
- 2025-01-07百万架构师第十一课:源码分析:Spring 源码分析:Spring源码分析前篇|JavaGuide
- 2025-01-07质量检测标准严苛,这 6 款办公软件达标了吗?
- 2025-01-07提升品牌活动管理的效率:看板工具助力品牌活动日历的可视化管理
- 2025-01-07宠物商场的精准营销秘籍:揭秘看板软件的力量
- 2025-01-07“30了,资深骑手” | 程序员能有什么好出路?
- 2025-01-07宠物公园的营销秘籍:看板软件如何帮你精准触达目标客户?
- 2025-01-07从任务分解到资源优化:甘特图工具全解析
- 2025-01-07企业升级必备指南:从传统办公软件到SaaS工具的转型攻略
- 2025-01-07一文告诉你IT项目管理如何做到高效