这里不是入门指南, 而是一些个人使用遇到的问题参考

一、环境

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
    • 应用运行时, 会合并这些配置内容, 如果重复, 则高优先级覆盖低优先级

参考文章: maven全局配置文件settings.xml详解

四、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

五、文献资料

官方文档里面几乎可以找到你想要的内容


作者:小鸣的微笔记

出处:52liming.cnblogs.com

转载:文章可以转载,但是请标注原文链接

原文:https://www.cnblogs.com/52liming/p/12834485.html

关于Maven我应该知道的事的更多相关文章

  1. C# 范型约束 new() 你必须要知道的事

    C# 范型约束 new() 你必须要知道的事 注意:本文不会讲范型如何使用,关于范型的概念和范型约束的使用请移步谷歌. 本文要讲的是关于范型约束无参构造函数 new 的一些底层细节和注意事项.写这篇文 ...

  2. 十件你需要知道的事,关于openstack-trove(翻译)

    开源数据库即服务OpenStack Trove应该知道的10件事情 作者:Ken Rugg,Tesora首席执行官 Ken Rugg是Tesora的创始人,CEO和董事会成员. Ken的大部分职业都是 ...

  3. 关于Unicode,字符集,字符编码,每个程序员都应该知道的事

    关于Unicode,字符集,字符编码,每个程序员都应该知道的事 作者:Jack47 李笑来的文章如何判断一个人是否聪明?中提到: 必要.清晰.且准确的概念,是一切思考的基石.所谓思考,很大程度上,就是 ...

  4. 学习IOS需要知道的事

    什么是iOS iOS是一款由苹果公司开发的操作系统(OS是Operating System的简称),就像平时在电脑上用的Windows XP.Windows 7,都是操作系统 那什么是操作系统呢?操作 ...

  5. 网站开发进阶(三十八)Web前端开发规范文档你需要知道的事

    Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...

  6. Web前端开发规范文档你需要知道的事

    Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...

  7. 漫谈ElasticSearch关于ES性能调优几件必须知道的事

    lasticSearch是现在技术前沿的大数据引擎,常见的组合有ES+Logstash+Kibana作为一套成熟的日志系统,其中Logstash是ETL工具,Kibana是数据分析展示平台.ES让人惊 ...

  8. Weex学习与实践(一):Weex,你需要知道的事

    Weex学习与实践(一):Weex,你需要知道的事 http://coderyi.com/posts/weex1/ 1.命令行工具:weex-toolkit  https://github.com/w ...

  9. 苹果强制使用HTTPS传输了怎么办?——关于HTTPS,APP开发者必须知道的事

    WeTest 导读 2017年1月1日起,苹果公司将强制使用HTTPS协议传输.本文通过对HTTPS基础原理和通信过程内容的讲解,介绍APP开发者在这个背景下的应对办法. 几周前,我们在<htt ...

随机推荐

  1. Rocket - devices - TLBusBypass

    https://mp.weixin.qq.com/s/WviVHxlZvsNm8mea2VpfTw 简单介绍TLBusBypass的实现. 1. TLBypassNode TLBypassNode定义 ...

  2. 50个SQL语句(MySQL版) 问题十六

    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...

  3. IntelliJ IDEA连接不上数据库 (Connection to testdb@localhost failed. [08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.)

    问题提示为: 原因:MySQL数据库版本为8.0以上,需要在URL加上时区,即加上?serverTimezone=GMT 成功后为:

  4. Java实现 LeetCode 659 分割数组为连续子序列 (哈希)

    659. 分割数组为连续子序列 输入一个按升序排序的整数数组(可能包含重复数字),你需要将它们分割成几个子序列,其中每个子序列至少包含三个连续整数.返回你是否能做出这样的分割? 示例 1: 输入: [ ...

  5. Java实现 蓝桥杯VIP 算法提高 铺地毯

    算法提高 铺地毯 时间限制:1.0s 内存限制:256.0MB 问题描述 为了准备一个学生节,组织者在会场的一片矩形区域(可看做是平面直角坐标 系的第一象限)铺上一些矩形地毯.一共有n 张地毯,编号从 ...

  6. Java实现 蓝桥杯 算法提高 和谐宿舍2

    试题 算法提高 和谐宿舍2 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 我的某室友学过素描,墙上有n张他的作品.这些作品都是宽度为1,高度不定的矩形,从左到右排成一排,且底边在同 ...

  7. java实现第二届蓝桥杯四方定理

    四方定理. 数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示. 我们可以通过计算机验证其在有限范围的正确性. 对于大数,简单的循环嵌套是不适宜的.下面的代码给出了一种分解方案. 请 ...

  8. Java实现第九届蓝桥杯阶乘位数

    阶乘位数 题目描述 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞&qu ...

  9. java实现第七届蓝桥杯棋子换位

    棋子换位 棋子换位 有n个棋子A,n个棋子B,在棋盘上排成一行. 它们中间隔着一个空位,用"."表示,比如: AAA.BBB 现在需要所有的A棋子和B棋子交换位置. 移动棋子的规则 ...

  10. 除了FastJson,你也应该了解一下Jackson(一)

    在上月末的时候收到一条关于fastjson安全漏洞的消息,突然想到先前好像已经有好多次这样的事件了(在fastjson上面).关于安全方面,虽然中枪的机率微小,但是在这个信息越来越复杂的时代,安全性也 ...