关于Maven我应该知道的事
这里不是入门指南, 而是一些个人使用遇到的问题参考
一、环境
Maven 版本JDK要求
| Maven | Java |
|---|---|
| 3.3 - 3.6 | 7 |
| 3.2 | 6 |
| 3.0 - 3.1 | 5 |
- 1.0 - 2.x : End Of Life
官方文档参考 : Maven Releases History
二、Maven Plugins
clean: 构建后清理compile: 编译 Java 源代码deploy: 将构建的构件部署到远程存储库; 在集成或发布环境中完成,将最终包复制到远程存储库中,以便与其他开发人员和项目共享install: 将构建的构件安装到本地存储库中; 作为本地项目的依赖项。package: 使用已编译的代码,并将其打包成可部署格式,例如JAR。
官方文档参考 : Maven Plugins
三、 setting.xml 加载顺序
- 文件位置: 官网推荐是
USER_HOME/.m2/settings.xml, 想想也是, 这样升级 Maven 时就不用担心配置文件被覆盖了.- 全局配置: ${M2_HOME}/conf/settings.xml
- 用户配置: user.home/.m2/settings.xml
- 优先级 :
pom.xml>user settings>global settings- 应用运行时, 会合并这些配置内容, 如果重复, 则高优先级覆盖低优先级
四、mirror 和 repository
如果遇到配置了mirrors 还是不能从镜像中下载依赖包就要考虑这两者之间的区别联系了
settings.xml
<!-- mirrors
| This is a list of mirrors to be used in downloading artifacts from remote repositories.
| 这是用于从远程存储库下载工件的镜像列表。
|
| It works like this: a POM may declare a repository to use in resolving certain artifacts.
| However, this repository may have problems with heavy traffic at times, so people have mirrored
| it to several places.
| 它的工作方式是这样的:POM可以声明一个存储库以用于解决某些工件。
| 但是,此存储库有时可能会遇到流量大的问题,因此人们已经镜像
| 它到几个地方。
|
| That repository definition will have a unique id, so we can create a mirror reference for that
| repository, to be used as an alternate download site. The mirror site will be the preferred
| server for that repository.
| 该存储库定义将具有唯一的ID,因此我们可以为此创建一个镜像引用
| 存储库,用作备用下载站点。 镜像站点将是首选该存储库的服务器。
|-->
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
| 指定要使用的存储库镜像站点而不是给定的存储库。 该存储库
| 此镜像服务的ID与该镜像的mirrorOf元素匹配。 使用ID
| 用于继承和直接查找目的,并且在整个镜像集中必须唯一。
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
</mirrors
pom.xml
<project>
...
<repositories>
<repository>
<id>my-internal-site</id>
<url>http://myserver/repo</url>
</repository>
</repositories>
...
</project>
重点
setting.xml中的<mirrorOf>要与pom.xml文件中的<repository?的id相对应;- 如果设置
<mirrorOf>*</mirrorOf>则会覆盖其后的<mirror>, 所以一般会将<mirrorOf>*</mirrorOf>的镜像配置放在<mirrors>的最后
参考文章: maven的mirror和repository加载顺序
官方: Guide to Mirror Settings
官方: Settings Reference
官方: POM Reference
五、文献资料
官方文档里面几乎可以找到你想要的内容
- 官方 文献资料索引
- 官方 Maven 入门指南
作者:小鸣的微笔记
出处:52liming.cnblogs.com
转载:文章可以转载,但是请标注原文链接
原文:https://www.cnblogs.com/52liming/p/12834485.html
关于Maven我应该知道的事的更多相关文章
- C# 范型约束 new() 你必须要知道的事
C# 范型约束 new() 你必须要知道的事 注意:本文不会讲范型如何使用,关于范型的概念和范型约束的使用请移步谷歌. 本文要讲的是关于范型约束无参构造函数 new 的一些底层细节和注意事项.写这篇文 ...
- 十件你需要知道的事,关于openstack-trove(翻译)
开源数据库即服务OpenStack Trove应该知道的10件事情 作者:Ken Rugg,Tesora首席执行官 Ken Rugg是Tesora的创始人,CEO和董事会成员. Ken的大部分职业都是 ...
- 关于Unicode,字符集,字符编码,每个程序员都应该知道的事
关于Unicode,字符集,字符编码,每个程序员都应该知道的事 作者:Jack47 李笑来的文章如何判断一个人是否聪明?中提到: 必要.清晰.且准确的概念,是一切思考的基石.所谓思考,很大程度上,就是 ...
- 学习IOS需要知道的事
什么是iOS iOS是一款由苹果公司开发的操作系统(OS是Operating System的简称),就像平时在电脑上用的Windows XP.Windows 7,都是操作系统 那什么是操作系统呢?操作 ...
- 网站开发进阶(三十八)Web前端开发规范文档你需要知道的事
Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...
- Web前端开发规范文档你需要知道的事
Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...
- 漫谈ElasticSearch关于ES性能调优几件必须知道的事
lasticSearch是现在技术前沿的大数据引擎,常见的组合有ES+Logstash+Kibana作为一套成熟的日志系统,其中Logstash是ETL工具,Kibana是数据分析展示平台.ES让人惊 ...
- Weex学习与实践(一):Weex,你需要知道的事
Weex学习与实践(一):Weex,你需要知道的事 http://coderyi.com/posts/weex1/ 1.命令行工具:weex-toolkit https://github.com/w ...
- 苹果强制使用HTTPS传输了怎么办?——关于HTTPS,APP开发者必须知道的事
WeTest 导读 2017年1月1日起,苹果公司将强制使用HTTPS协议传输.本文通过对HTTPS基础原理和通信过程内容的讲解,介绍APP开发者在这个背景下的应对办法. 几周前,我们在<htt ...
随机推荐
- FreeRTOS-为什么关中断之后切换进程?
https://mp.weixin.qq.com/s/S5HBH3RTo0B2irr8sGwDdw 一. 基本问题 FreeRTOS会在关键区即taskENTER_CRITICAL()和tas ...
- 获取<input type="radio">被选中的内容
背景: <input type="radio">,该标签表示的是单选按钮,这个类型相对于其他类型的获取,比较特殊,特此记录一下. 获取方式: 1. 使用选择器直接获取( ...
- Java实现 蓝桥杯VIP 基础练习 报时助手
题目描述 给定当前的时间,请用英文的读法将它读出来. 时间用时h和分m表示,在英文的读法中,读一个时间的方法是: 如果m为0,则将时读出来,然后加上"o'clock",如3:00读 ...
- Java实现 LeetCode 112 路径总和
112. 路径总和 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标 ...
- Java中map.getOrDefault()方法的使用
Map.getOrDefault(Object key, V defaultValue)方法的作用是: 当Map集合中有这个key时,就使用这个key值: 如果没有就使用默认值defaultV ...
- java算法集训代码填空题练习1
1 报数游戏 有n个孩子站成一圈,从第一个孩子开始顺时针方向报数,报到3的人出列,下一个人继续从1报数,直到最后剩下一个孩子为止.问剩下第几个孩子.下面的程序以10个孩子为例,模拟了这个过程,请完善之 ...
- java实现机器人行走
某少年宫引进了一批机器人小车.可以接受预先输入的指令,按指令行动.小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字). 例如,我们可以对小车输入如下的指令: ...
- Java实现二分图的最大权匹配
1 问题描述 何为二分图的最大权匹配问题? 最大权二分匹配问题就是给二分图的每条边一个权值,选择若干不相交的边,得到的总权值最大. 2 解决方案 解决这个问题可以用KM算法.理解KM算法需要首先理解& ...
- Python子类构造函数调用super().__init__()用法说明
一.super的作用 1.如果子类(Puple)继承父类(Person)不做初始化,那么会自动继承父类(Person)属性name.2.如果子类(Puple_Init)继承父类(Person)做了初始 ...
- SpringCloud多数据源实现
1.枚举多数据源-定义一一对应变量 /** * * 列出所有的数据源key(常用数据库名称来命名) * 注意: * 1)这里数据源与数据库是一对一的 * 2)DatabaseType中的变量名称就是数 ...