maven笔记小抄

2023-05-16

settings.xml
settings.xml位置
  1. 标签指定本地下载的依赖在本地的保存位置

${user.home}/.m2/repository表示C:\Users\username.m2\settings.xml

  1. 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>
依赖下载基本优先级
  1. 本地所有Maven项目都复用一个本地仓库
  2. 中央仓库从远程仓库/私服(可配置)下载必要的构建

本地仓库 > 特定仓库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依赖优选原则
  1. 依赖最短路径优先原则
    A-B-C-X{1.0} A-D-X{2.0} 选择X{2.0}
  2. pom文件中声明顺序优先 先声明的依赖
  3. 覆写优先
    子pom内声明的优先于父pom的依赖
maven生命周期
  1. 三套生命周期相互独立
    clean(pre-clean clean post-clean) > default(validate compile test package verify install deploy) > site
  2. 一套生命周期中,生命周期阶段前后依赖
  3. 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
  • 查看项目依赖
在pom.xml所在的目录下执行, 先从本地仓库进行查找,如果找不到才会到远程仓库进行查找,并下载到本地仓库
查看二级层级的依赖关系
mvn dependency:tree  -Doutput=jar包依赖关系.txt
查看完整依赖
mvn dependency:tree -Dverbose -Doutput=jar包依赖关系.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

maven笔记小抄 的相关文章

  • CmakeLists 复杂c++工程应用实例

    project vir data process cmake minimum required VERSION 2 8 add compile options std 61 c 43 43 11 include directories us
  • ROS学习笔记7_服务端Server

    在上图所示的模型中 xff0c Client作为请求的发送端 xff0c Server端接收Client发送的指令 xff0c 并且完成topic指令的发送 其中请求的信息类型是std srvs Trigger类 xff0c 同时返回一个R
  • char和int转换

    char和int的转换有两种方式 最简单的方法就是利用ASSCII码的差值 xff0c 直接用char的值减去 0 就行了 eg xff1a char a 61 39 9 39 int a 61 a 39 0 39 或者就用atof函数 x
  • printf缓冲区踩坑

    问题 碰到了这样一段代码 经过简化的 span class token macro property span class token directive hash span span class token directive keywo
  • PSINS学习笔记---姿态解算(1)---圆锥运动

    PSINS堪称中国导航领域的福音了 计划将工具箱中常用于工程实际中的相关算法根据个人理解做个解读注释 并且利用严老师网站中公开的数据集进行测试 由于个人水平有限 料想会漏洞百出 希望大家发现了不吝赐教 xff0c 感谢 xff01 1 加载
  • 使用matlab读取excel并作图

    在写论文时无奈非要用matlab xff0c 于是用地面站把传感器数据导出到了excel xff0c 用matlab画个图 用地面站向excel中读入数据 读入完保存即可 我读的是两种传感器数据 xff0c 一个是光流的位置值 xff0c
  • 坐标系梳理

    在很久以来 xff0c 我以为世界上只有两种坐标系 n系导航系和b系机体坐标系 最近在调试厂实验期间才知道原来还有特么这么多坐标系 机体系 xff1a 无人机 潜航器这些刚体自身的坐标系 xff0c 坐标系符合右手法则 xff0c x轴为机
  • 串口通信实现Int或float类型数据传输的方法

    方法 xff1a 发送方拆分数据为多个字节 xff0c 接收方再合并 串口通信程序中发送和接受数据以字节为单位 xff0c 将int或float类型的数据拆成单个字节存放到发送字符数组中 xff0c 然后接收方按照大小端模式将其重新合并为i
  • Gazebo Plugins教程

    Overview of Gazebo plugins Gazebo插件通过标准C 43 43 类直接控制Gazebo模型 xff0c 其具有以下优点 可以控制gazebo中几乎各个方面 xff1b 容易共享 xff1b 能够在运行的系统中插
  • 基于STM32读取SBG Ellipse A型号惯导数据

    之前在飞控上用的都是mpu6050 xff0c 但AUV在执行任务时主要在水下环境 xff0c 收不到GPS信号 xff0c 因此对INS的精度要求较高 xff0c 在姿态解算时要考虑地球自转等因素 xff0c 因此需要一款惯导器件能够感受
  • gcc-arm-none-eabi + scons环境搭建、固件烧录小记

    环境搭建在win7系统下进行 1 装git https gitforwindows org 正常下载即可 xff0c 装完后将git路径 xff08 D Program Files Git bin xff09 添加到环境变量中 添加方法 x
  • C语言中常用宏__FUNCTION_和__FILE__、__LINE__的用法介绍

    C C 43 43 提供了三个宏 FUNCTION FILE 和 LINE 用于定位程序运行时发生错误的位置 程序预编译时预编译器将用所在的函数名 xff0c 文件名和行号替换 当运行时错误产生后这三个宏分别能返回错误所在的函数 xff0c
  • Linux命令发送Http的get或post请求(curl和wget两种方法) 及定时任务的设置

    Http请求指的是客户端向服务器的请求消息 xff0c Http请求主要分为get或post两种 xff0c 在Linux系统下可以用curl和wget命令来模拟Http的请求 下面就来介绍一下Linux系统如何模拟Http的get或pos
  • ROS path问题解决方案

    1 问题描述 1 1 在Roboware里面直接右键运行launch文件会出现如下错误 ResourceNotFound hector gazebo worlds ROS path 0 61 opt ros kinetic share ro
  • ubuntu下socket通信

    点击打开原文链接 第一部分为C 43 43 实现 xff0c 第二部分为python实现 第一部分 该socket 的功能是在客户端输入了两个浮点数组成的字符串 xff0c 在服务端接受后将其转换为浮点数输出 xff0c 统一时刻只能有一个
  • ZED相机深度模式+ZED sl中函数介绍

    ZED SDK提供两种深度感应模式 xff1a STANDARD和FILL 该STANDARD模式是ZED的默认深度感应模式 该STANDARD模式保留距离度量和形状 xff0c 并且比FILL模式运行得更快 xff0c 但它包含由于视觉遮
  • 串行通信的数据位,起始位,停止位?

    参考链接 单片机串口通信一般是11位 xff0c 起始位1bit xff0c 数据位8bit xff0c 校验位1bit xff0c 停止位1bit xff0c 串口通信分两种一种是同步通信 xff0c 一种是异步通信 xff0c 像ps
  • linux的UDP通信编程

    这篇文章将对linux下udp socket编程重要知识点进行总结 xff0c 无论是开发人员应知应会的 xff0c 还是说udp socket的一些偏僻知识点 xff0c 本文都会讲到 尽可能做到 xff0c 读了一篇文章之后 xff0c
  • UDP组播服务端与客户端代码实例

    1 组播服务端代码 xff08 数据发送端 xff09 include lt stdio h gt include lt stdlib h gt include lt stdbool h gt include lt string h gt
  • HTTP报文

    HTTP请求报文解剖 http请求报文由3部分组成 xff08 请求行 请求头 请求体 xff09 实际请求报文 是请求方法 xff0c GET和POST是最常见的HTTP方法 xff0c 除此以外还包括DELETE HEAD OPTION

随机推荐

  • IMX6ULL与STM32F103的CAN通信实现

    IMX6ULL与STM32F103的CAN通信实现 硬件连接驱动层实现IMX6ULLSTM32F103ZET6 应用层实现IMX6ULLSTM32F103ZET6 结果 在上一篇博文中 xff0c 我们利用USBCAN设备及其上位机软件 x
  • linux-can编程(一)

    建立can的socket int can create socket char name int fd struct sockaddr can addr struct ifreq ifr socklen t len 61 sizeof ad
  • RTKLIB软件介绍

    转载自南京信息工程大学遥感与测绘工程学院的赵乐文老师的网课 xff08 来源 xff1a B站 xff09 开源GNSS数据处理软件介绍 RTKLIB下载 xff1a http www rtklib comCSDN里的资源 xff1a 快速
  • 将rtklib移植到树莓派

    在Raspberry Pi上构建RTKLIB CUI 材料 xff1a 树莓派4b xff0c NEO M8T 配置参考 这次实验主要相对RTKLIB进行尝试 xff0c 将rtkrcv移植到树莓派上 构建RTKRCV xff08 生成RT
  • 开发中常用的快捷键

    前言 常见的快捷键可以帮助程序员脱离鼠标的束缚 xff0c 提升效率 当然 xff0c 最重要的是可以装逼 Keyboard shortcuts I often use Windows Ctrl 43 Number ALT 43 Esc 使
  • 顶级程序员都在用哪些网站?

    前言 在这里给大家分享一点非常高质量的学习资料和工具网站 欢迎大家留下精彩的网站 xff0c 也可以是生活的 商业的等等 目录 高质量免费在线书籍高质量算法网站开源社区网站在线工具源码查找容器化技术 还有很多 将不定期更新 高质量免费在线书
  • ❤️Python是一个业余的编程语言吗?❤️

    x1f47e 前言 作为一个在python国内还很小众的时候就开始玩Python了 我知道有大佬是2013年就玩的很溜了 xff0c 麻烦让我装个逼 不过Python正渐渐退出了我的主力语言 xff0c golang c rust可能是未来
  • 一文讲清SSL协议

    OSI七层模型 计算机网络的OSI七层模型和TCP IP四层模型想必大家都知道 其中SSL TLS是一种介与于传输层 xff08 比如TCP IP xff09 和应用层 xff08 比如HTTP xff09 的协议 它通过 34 握手协议
  • 闭包详解(Python为例)

    不能简单讲 xff0c 这就要看一些底层的东西 堆栈结构等等 xff0c 估计还和编译原理有关 xff0c 我觉得重点在于延迟绑定怎么知道绑定的外层函数的局部变量 python的闭包是延迟绑定 什么是闭包 出现函数嵌套 即外层函数嵌套内层函
  • c++中函数只声明,不定义(不调用该函数)可以通过编译并运行

    c 43 43 中函数只声明 xff0c 不定义 xff0c 代码中也没有该函数的调用 xff0c 可以编译并运行 xff08 vs2015 xff09 Author gtkiller Date 2018 03 19 include lt
  • RMI的基础原理

    背景 上世纪90年代 焦点转移到跨平台通信 一台计算机可以通过某种类型网络在另一台计算机上发起一个动作 CORBA DCOM Java RMI 技术等等 xff0c 到现在的grpc等 Hello span class token keyw
  • 一次因修改Python编码规范而引起的“血案“

    简单来说就是因为如下代码 导致了ZipOutputPath的一个函数异常 导致zip包不能正确下载 有如下报错 UnboundLocalError local variable 39 val 39 referenced before ass
  • Python之禅(The Zen of Python)源码分析

    简介 非常高兴大家能够订阅这个专栏 在这里我将会给大家分享一些Python相关源码的剖析 在接下来的这段日子里 我会一同带各位pythonista探索Python的奥秘 该从什么开始 思来想去 我觉得作为一个Python初学者还是Pytho
  • Linux常用命令速查表

    目录即文件 dev null 等价于只写文件 所有写入它的内容都会永远丢失 而尝试从它那儿读取内容则什么也读不到 禁止标准输出 cat filename gt dev null 文件内容丢失 xff0c 而不会输出到标准输出 禁止标准错误
  • git常用命令速查表

    这是一些比较常用的命令 大家可以复制后用typora做成pdf格式 xff0c 方便快速查询 后续不定期更新 官方文档 官方文档 https git scm com docs 本地文档 file D cmder vendor git for
  • python开发中的常用命令

    这是一些比较常用的命令 大家可以复制后用typora做成pdf格式 xff0c 方便快速查询 后续不定期更新 pip升级 pip package installer for python use pip to install package
  • Python手写一个Base64编解码工具

    这里我们只实现标准的base64 补充位用 61 填充 编码 下面是base64字符的对照表 因为base64编码是将6bit表示成8bit 所以在原来的基础上会增长1 3 另外2 6 61 64 xff0c 这也是为什么这个表会有64个索
  • Python彩蛋源码分析(二)

    简介 非常高兴大家能够订阅这个专栏 在这里我将会给大家分享一些Python相关源码的剖析 在接下来的这段日子里 我会一同带各位pythonista探索Python的奥秘 hello world hello world hello pytho
  • Python源码剖析专栏总览

    简介 非常高兴大家能够订阅这个专栏 在这里我将会给大家分享一些Python相关源码的剖析 在接下来的这段日子里 我会一同带各位pythonista探索Python的奥秘 将会分析一些源码的构思设计以及这些工具的使用方法 彩蛋篇 Easter
  • maven笔记小抄

    settings xml settings xml位置 标签指定本地下载的依赖在本地的保存位置 user home m2 repository表示C Users username m2 settings xml idea中File Sett