关于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 ...
随机推荐
- Rocket - debug - DebugCustomXbar
https://mp.weixin.qq.com/s/7h9Bdb0x4_clyigMU_0B7Q 讨论DebugCustomXbar中的几个问题. 1. sources/sourceParams n ...
- 【大厂面试02期】Redis过期key是怎么样清理的?
PS:本文已收录到1.1K Star数开源学习指南--<大厂面试指北>,如果想要了解更多大厂面试相关的内容,了解更多可以看 http://notfound9.github.io/inter ...
- C#中值类型,引用类型,字符串类型的区别(内存图解)
如果用图片来解释值类型,引用类型和字符串类型(引用类型的一种)的区别的话 值类型: 引用类型: string类型:
- vue-组件化-插槽(slot)
理解 Vue组件化中,当我们在设计一个组件的时候,可能会保留一部分,让使用者自定义的内容,比如: 导航栏组件中,右上角的分享按钮,左上角做菜单按钮 弹出框组件中,弹出框的提示内容等 ... 在这种场景 ...
- Ondemand和Interactive gonernor工作逻辑简述
ondemand 简述: 1.采样时间:sampling_rate,单位us 2.cpu usage是仅统计最新1us的一个smaple周期,以%体现cpu busy程度. 3.一般情况下,next频 ...
- Java实现 LeetCode 731 我的日程安排表 II(二叉树)
731. 我的日程安排表 II 实现一个 MyCalendar 类来存放你的日程安排.如果要添加的时间内不会导致三重预订时,则可以存储这个新的日程安排. MyCalendar 有一个 book(int ...
- java实现第四届蓝桥杯颠倒的价牌
颠倒的价牌 题目描述 小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店. 其标价都是4位数字(即千元不等). 小李为了标价清晰.方便,使用了预制的类似数码管的标价签,只要用颜色笔涂数字就 ...
- PAT 程序运行时间
要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间.这个时间单位是 clock ...
- 并发编程之sun.misc.Unsafe类
1.Unsafe知识点整理 2.代码: package com.javabasic.unsafe; import java.lang.reflect.Field; import sun.misc.Un ...
- go语言实现"生产者"和"消费者"的例子
学习java的多线程的时候最经典的一个例子就是生产者消费者模型的例子,最近在研究go语言协程,发现go提供的sync包中有很多和java类似的锁工具,尝试着用锁工具配合协程实现一个"消费者& ...